abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    včera 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 9
    včera 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    10.7. 12:55 | Bezpečnostní upozornění

    Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].

    Ladislav Hagara | Komentářů: 16
    10.7. 11:55 | Humor

    Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂

    Ladislav Hagara | Komentářů: 14
    10.7. 02:11 | Nová verze

    Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    10.7. 01:11 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    10.7. 00:11 | IT novinky

    Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.

    Ladislav Hagara | Komentářů: 8
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 388 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Kreslení do GtkFixed

    Luboš Doležel (Doli) avatar 16.8.2005 15:39 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Kreslení do GtkFixed
    Přečteno: 86×
    Ahoj,

    řeším jeden problém s GTK. Potřebuju mít plochu, na kterou můžu něco vykreslovat a uprostřed té plochy bude ScrolledWindow s TreeView uvnitř.

    Napadlo mě použít GtkFixed a umístit do něj ten ScrolledWindow. Jenže při kreslení do GtkFixed se objevil problém: pokud při expose event vykreslím něco na pozici X=5,Y=5, tak se sice objekt vykreslí na tuto pozici, ale relativně k toplevel oknu, ne k tomu GtkFixed.

    Chci se proto zeptat: je nějaký "správný" postup jak vyřešit požadavek definovaný v prvním odstavci?

    Díky

    Odpovědi

    Luboš Doležel (Doli) avatar 16.8.2005 16:36 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    Tak jsem to zatím vyřešil tak, že veškeré vykreslování je posunuté podle pozice GtkFixed, ale během toho jsem zjistil, že veškerá volání GC::offset() jsou ignorována, takže musím samotný posun provádět sám.
    16.8.2005 17:48 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    GtkFixed je no-window widget, takže se kreslí na okno rodiče...
    #include <gtk/gtk.h>
    
    static gboolean
    exposed(GtkWidget *fixed,
            G_GNUC_UNUSED GdkEventExpose *event)
    {
        GdkGC *gc = gdk_gc_new(fixed->window);
        GtkAllocation *alloc = &fixed->allocation;
    
        gdk_draw_line(fixed->window, gc,
                      alloc->x, alloc->y,
                      alloc->x + alloc->width, alloc->y + alloc->height);
        g_object_unref(gc);
    
        return FALSE;
    }
    
    int
    main(int argc, char *argv[])
    {
        GtkWidget *window, *frame, *fixed;
    
        gtk_init(&argc, &argv);
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_container_set_border_width(GTK_CONTAINER(window), 40);
        g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    
        frame = gtk_frame_new(NULL);
        gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
        gtk_container_add(GTK_CONTAINER(window), frame);
    
        fixed = gtk_fixed_new();
        g_printerr("GtkFixed is: %s\n",
                   GTK_WIDGET_NO_WINDOW(fixed) ? "NO_WINDOW" : "WINDOW");
        gtk_widget_set_size_request(fixed, 200, 100);
        g_signal_connect(fixed, "expose-event", G_CALLBACK(exposed), NULL);
        gtk_container_add(GTK_CONTAINER(frame), fixed);
    
        gtk_widget_show_all(window);
        gtk_main();
    
        return 0;
    }
    
    Luboš Doležel (Doli) avatar 16.8.2005 21:19 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    Ve zdrojáku GTK+ vidím, jak si flag NO_WINDOW nastavuje v gtk_fixed_init(), ale v gtk_fixed_realize() počítá i s možností, že není NO_WINDOW. Mám nějakou šanci mu ten flag změnit před tím, než se mu zavolá realize?
    16.8.2005 21:28 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    Jistě. Stačí kdekoli mezi vytvořením a realizací (typicky vyvolanou gtk_widget_show()) provést
    GTK_WIDGET_UNSET_FLAGS(fixed, GTK_NO_WINDOW);
    
    Luboš Doležel (Doli) avatar 16.8.2005 21:50 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    Díky moc. Už to všechno chodí dle mých představ.
    Luboš Doležel (Doli) avatar 16.8.2005 21:31 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    Odpovím si sám. gtk_fixed_set_has_window()
    16.8.2005 21:59 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Kreslení do GtkFixed
    No vida, on na to dokonce má metodu ;-)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.