Linux GTK ablakok dokkolása C ben!
2017-06-30T16:08:37+02:00
2017-06-30T23:00:38+02:00
2022-07-19T08:45:26+02:00
jbalint
Sziasztok!

Egy elég elgondolkodtató problémára keresek megoldást:

C-ben GTK3-Glade párossal programozok Code::Blocks al Debian Linux 8.6 alatt (Linux Mint LMDE2 Betsy, MATE felülettel).

Rendszeresen találkozom olyan problémával, amire van kész jól használható program és nem szeretném megírni csak valahogy integrálni kellene a saját programomba.

Ezeket a külső programokat (pl VLC, Mplayer, Gedit stb) egy system() hívással megnyitom, de nem tudom megoldani hogy ne "külön" ablakba jelenjen meg a program hanem a saját programom ablakán belül!

Eddig WebkitGTK val oldottam meg (integrálható böngésző), ezzel egy weblapot gyönyörűen tudok integrálni a programom ablakába, sőt igazából bármit (pl legutóbb beágyazott videó streamet integráltam ezzel a megoldással).

A gond hogy nem tetszik, nem szeretem a web es megközelítést (pl most gstream vagy hasonló megoldásra állok át videólejátszáshoz), és csak webes "alkalmazásokhoz" jó, nem akarok webes alternatívákat keresni hanem az jól bevált programokat szeretném használni (Gedit, VLC-t , Mplayert, ffplay,  stb)

Próbálkoztam az XdoTool segédprogrammal, ezzel legalább sikerült x,y pozícióba "kulturáltan" lepakolni a megnyíló ablakokat egymás mellé, de hogy 1 db ablakba rendezzem őket azt nem.

Valami olyasmire gondoltam hogy vagy "gyermek ablakban" nyíljanak meg vagy a főablakban létrehozott erre szánt konténerben (ez lenne a legjobb ha valahogy megoldható lenne!), esetleg csak mindig a főablak előtt maradjanak (tehát nem a "mindig felül" opcióval csak mindig a "szülő ablak előtt).

Picit a Windows os OLE technológia egy kifacsart alternatívájaként, és nem zavar ha külön programok "nem tudnak egymásról" (pl minden szövegszerkesztő ablakban külön kell menteni stb), az sem zavar ha külön menüsort kap mind, bár a címsort el szeretném tüntetni róluk (szerintem a címsor elrejtésével nem lesz gond...)

Remélem érthető mi a gondom, és mit szeretnék elérni, egyelőre nem tudom hogyan tudnám megoldani vagy merrefelé érdemes elindulni.

Ti találkoztatok hasonló boblámával? Hogy oldanátok meg ilyen jellegű feladatokat? Esetleg konkrét megoldást tudtok?

Válaszotokat előre is köszönöm!

Üdvözlettel: jbalint.
Mutasd a teljes hozzászólást!

  • Hali,

    próbáltad például már a libvlc-t használni?
    Mutasd a teljes hozzászólást!
  • X nek van XEmbed protokollja

    google-be gtk xembed

    Embedding applications via XEmbed

    amúgy nem próbáltam csak érdekelt engem is.
    Mutasd a teljes hozzászólást!
  • Szia!

    Azt hiszem megtaláltad a tökéletes megoldást (de legalábbis a tökéletes választ a kérdésemre).

    A linkelt kód persze nem jó de legalább lefordul... :D (a "gvim" parancsot, programot nem találja, ha meg lecserélem pl "gedit" re az külön ablakban nyílik meg... de az elv jó nak tűnik még küzdök vele).

    Ugyanakkor az Xembedding, XEmbed kulcsszó és témakör lesz szerintem a megoldás!

    Sajnos kinyírtam a Linuxom (gysorsan fel akartam dobni a "gvim" et) nyomtam egy upgrade-t is kár volt elfelejtettem hogy benne maradt az unstable tároló.

    Sikeresen Ubuntu 12.04LTS (Linux Mint 13, otthoni gép a fenti adatok meg a munkahelyi gépre vonatkoztak :D ) lefrissített a rendszer Debian9 SID re ...

    A csoda hogy bebootol "csak" nincs gui (ez mindig így van ha új a kernel, fel kell telepíteni a AMD video drivert) a nagyobb gond hogy a karakteres felület (ami rendesen megjelenik és felhasználói nevet meg jelszót kér) nem enged be.

    Igen tuti a jó jelszót próbálom, az upgrade előtt még elfogadta...

    Mindegy megpróbálom helyrehozni azt ha nem megy holnap újratelepítem (amúgy is rá fért).

    Szerencsére dpgk -l el lementettem a csomaglistát így csak be kel "cat" olni az apt-get -nek és feltelepít mindent magától megint :D

    Még szerencse hogy mindig mentek, mert csak kb az upgrade felénél vettem észre hogy baj van!

    Tehát kicsit lassabb lesz tesztelni de amint tudom kipróbálom (ha más nem feltelepítem a fejlesztő környezetet a laptopomra,
    Mutasd a teljes hozzászólást!
  • Szia!

    Köszi, igen néztem de ez megint csak videó lejátszásra lenne jó.

    Egyébként a WebKitGTK mellet, a libvlc, a gstream és a libffplay el is meg akarom írni a teszt alkalmazást hogy összehasonlítsam őket...

    Vermelho ötlete felé szeretnék elindulni.

    Bálint
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd