De ennél több effortot ebbe nem fogok rakni, hoztam neked a linkeket az implementációra, akkor most te hozz nekem, ahol pl. létrehozzák a natív menüt és feltöltik a menüelemekkel.Nem, te nem az implementációra hoztál linkeket, hanem a definíciókra; elég vaskos különbség. Te kikerestél pár XUL-ban leírt elemdefiníciót és azt mutattad meg, az egyetlen kivétel a
nsMenuPopupFrame.cpp volt, ahol a XUL-os menürajzolás volt implementálva, csak annak mi köze a browser GUI-hoz?
A GUI kezelésének implementációi itt lesznek, pl. a menüsávé:git clone https://repo.palemoon.org/mcp-graveyard/UXP
cd UXP
grep -r 'gtk_menu_bar_new()'widget/gtk/nsLookAndFeel.cpp: GtkWidget *menuBar = gtk_menu_bar_new();
widget/gtk/gtk2drawing.c: gMenuBarWidget = gtk_menu_bar_new();
widget/gtk/WidgetStyleCache.cpp: GtkWidget* widget = gtk_menu_bar_new();grep -r 'gtk_menu_shell_append('widget/gtk/nsLookAndFeel.cpp: gtk_menu_shell_append((GtkMenuShell *)GTK_MENU(menu), menuitem);
widget/gtk/nsLookAndFeel.cpp: gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
widget/gtk/nsLookAndFeel.cpp: gtk_menu_shell_append(GTK_MENU_SHELL(menuBar), menuBarItem);
widget/gtk/gtk2drawing.c: gtk_menu_shell_append(GTK_MENU_SHELL(gMenuBarWidget),
widget/gtk/gtk2drawing.c: gtk_menu_shell_append(GTK_MENU_SHELL(gMenuPopupWidget),
widget/gtk/gtk2drawing.c: gtk_menu_shell_append(GTK_MENU_SHELL(gMenuPopupWidget),
widget/gtk/gtk2drawing.c: gtk_menu_shell_append(GTK_MENU_SHELL(gMenuPopupWidget),
widget/gtk/gtk2drawing.c: gtk_menu_shell_append(GTK_MENU_SHELL(gMenuPopupWidget),
widget/gtk/WidgetStyleCache.cpp: gtk_menu_shell_append(GTK_MENU_SHELL(GetWidget(MOZ_GTK_MENUPOPUP)),És akkor itt van ez: https://repo.palemoon.org/mcp-graveyard/UXP/src/branch/master/widget/gtk/mozcontainer.c
Az összes moz_container wrappelődik GTK2-re. Van egy konténer, amiben benne van a GTK-s widget. Gondolom megvan valahol ennek a windowsos megfelelője is, ahol a konténerben a windowsos widget van.
És itt van az ablak konkrét felépítésének és renderjének implementációja. GTK2 és GTK3. És nem csak egy sima GTK-s ablakot hoz létre - tökig van verve GtkWidget kóddal.
És mégvalami: a XUL-t teljesen le is lehet tiltani a --disable-xul flag-gel. Szerinted, ha a XUL-lal van rajzolva minden, akkor mi történik, ha letiltják? Nincs GUI?Hogy ez nálad miért van így azt nem tudom, én annyit tudok mondani, hogy jelenleg 4 Electron alkalmazás fut a gépemen, és összesen ha elhasználnak 1% CPU-t. Ebből 3 memóriafogyasztása 150 MB körül van, a 4. kb. 75MB.Ez kb. az a kategória, hogy nálad 200-400 kB egy electronos app. Azt lecsekkoltad már?