Raspberry Pi - Messagerequester und Icons

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
pickelrobert
Beiträge: 198
Registriert: 09.12.2004 22:09

Raspberry Pi - Messagerequester und Icons

Beitrag von pickelrobert »

Bei

Code: Alles auswählen

MessageRequester("Hinweis","Es gibt nichts zu tun."+Chr(13)+"(Noch keine Daten gelesen)", #PB_MessageRequester_Ok | #PB_MessageRequester_Info)
werden keine Icons angezeigt. Was habe ich übersehen?

Danke.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Raspberry Pi - Messagerequester und Icons

Beitrag von mk-soft »

Ist mir auch schon aufgefallen.

Aber wohl kein Purebasic probleme, da unter Intel dieses funktioniert.
Direkt mit GTK geht es auch nicht.

Code: Alles auswählen

;-TOP

ImportC ""
  gtk_message_dialog_new(GtkWindow, GtkDialogFlags, GtkMessageType, GtkButtonsType, message_format.p-utf8) ;, ... type)
EndImport

If OpenWindow(0, 100, 80, 400, 300, "Window")

  dialog = gtk_message_dialog_new(0, #GTK_DIALOG_MODAL, #GTK_MESSAGE_INFO, #GTK_BUTTONS_OK, "Hello")
  gtk_window_set_title_(dialog, "Info");
  result = gtk_dialog_run_(dialog);
  gtk_widget_destroy_(dialog);

  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
        
    EndSelect
  ForEver
  
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
pickelrobert
Beiträge: 198
Registriert: 09.12.2004 22:09

Re: Raspberry Pi - Messagerequester und Icons

Beitrag von pickelrobert »

Danke für die Info.
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: Raspberry Pi - Messagerequester und Icons

Beitrag von Shardik »

pickelrobert hat geschrieben: 10.09.2022 09:07 Bei

Code: Alles auswählen

MessageRequester("Hinweis","Es gibt nichts zu tun."+Chr(13)+"(Noch keine Daten gelesen)", #PB_MessageRequester_Ok | #PB_MessageRequester_Info)
werden keine Icons angezeigt. Was habe ich übersehen?

Danke.
Mit Subsystem "gtk2" werden auch auf dem RaspberryPi Icons angezeigt. Bei GTK3 sind in Dialogen - im Gegensatz zu GTK2 - keine Icons mehr vorgesehen:
https://discourse.gnome.org/t/gtk3-mess ... edora/8607
Emmanuele Bassi (einer der Hauptentwickler von GTK3) hat geschrieben:GTK does not use icons in message dialogs.

If you want to show an icon, you’ll have to create your own GtkDialog and pack widgets inside its content area yourself.

mk-soft hat geschrieben: 10.09.2022 10:44 Aber wohl kein Purebasic probleme, da unter Intel dieses funktioniert.
Es ist ein zusätzliches Feature, dass auch bei GTK3 In Dialogen Icons angezeigt werden. Möglicherweise zeigen nur bestimmte Ubuntu-Distributionen oder davon abgeleitete Distributionen standardmäßig Icons in Dialogen an, wenn diese einen speziellen Ubuntu-Patch für Unity installiert haben. Dann sollten allerdings nur Ubuntu-Distributionen oder davon abgeleitete Distributionen in GTK3-Dialogen standardmäßig ein Icon anzeigen. Ich werde morgen einmal verschiedene Distributionen daraufhin testen. Oder Fred oder freak haben diesen oder einen ähnlichen Patch in PureBasic für alle Linux-Distributionen mit Assembler-Backend für GTK3 implementiert.


mk-soft hat geschrieben: 10.09.2022 10:44 Direkt mit GTK geht es auch nicht.
Doch es geht, wenn man es richtig macht... :wink: (erfolgreich getestet mit GTK3 unter Linux Mint 19.3 'Tricia' und Raspbian GNU/Linux 11 (Bullseye) ARM32):

Bild

Code: Alles auswählen

EnableExplicit

Define Box.I
Define ContentArea.I
Define Dialog.I
Define Image.I
Define Label.I

ImportC ""
  gtk_box_new(Orientation.I, Spacing.I)
  gtk_box_pack_start(*Box.GtkBox, *Child.GtkWidget, Expand.I, Fill.I,
    Padding.I)
  gtk_dialog_get_content_area(*Dialog.GtkDialog)
  gtk_dialog_new_with_buttons(Title.P-UTF8, *ParentWindow.GtkWindow,
    Flags.I, ButtonText1.P-UTF8, ResponseType.I, Terminator.I = 0)
  gtk_image_set_from_icon_name(*Image.GtkImage, IconName.P-UTF8, Size.I)
EndImport

OpenWindow(0, 100, 80, 220, 170, "Window")

; ----- Dialog erstellen
Dialog = gtk_dialog_new_with_buttons("RaspberryPi", 0, #GTK_DIALOG_MODAL,
  "OK", #GTK_RESPONSE_OK)

; ----- Label und Image erstellen
Label = gtk_label_new_("Dialog mit Icon in GTK3")
Image = gtk_image_new_()

; ----- Info-Icon in Image eintragen
gtk_image_set_from_icon_name(Image, "dialog-information",
  #GTK_ICON_SIZE_DIALOG)

; ----- GtkBox erstellen
Box = gtk_box_new(#GTK_ORIENTATION_HORIZONTAL, 1)

; ----- Label und Image in GtkBox packen
gtk_box_pack_start(Box, Image, #True, #True, 10)
gtk_box_pack_start_(Box, Label, #True, #True, 10)

; -----  GtkBox in Dialog-Container eintragen
ContentArea = gtk_dialog_get_content_area(Dialog)
gtk_container_add_(ContentArea, Box)

; ----- Dialog anzeigen
gtk_widget_show_all_(Dialog)
gtk_dialog_run_(Dialog)
gtk_widget_destroy_(Dialog)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow[/code-PB]
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Raspberry Pi - Messagerequester und Icons

Beitrag von mk-soft »

Also keine 'gtk_message_dialog_new' sondern ein eigene DialogBox wie du vorher geschrieben hast. ;)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: Raspberry Pi - Messagerequester und Icons

Beitrag von Shardik »

mk-soft hat geschrieben: 13.09.2022 22:28 Also keine 'gtk_message_dialog_new' sondern ein eigene DialogBox wie du vorher geschrieben hast. ;)
Ein GtkDialog in Verbindung mit einer GtkBox.

Shardik hat geschrieben: 13.09.2022 21:21 Ich werde morgen einmal verschiedene Distributionen daraufhin testen.
Hier ist die versprochene Auswertung verschiedener Linux-Distributionen daraufhin, ob sie in GTK3 in einem MessageRequester mit #PB_MessageRequester_Info ein Icon anzeigen [+] oder nicht [-]:
[-] AntiX 21 x86 mit IceWM
[+] Bodhi Linux 4.5.0 x86 mit Moksha
[+] Bodhi Linux 5.1.0 x86 mit Moksha
[-] Debian 10 x86 'Buster' mit LXDE
[-] Debian 11 x86 'Bullseye' mit LXQt
[-] Devuan 4 x86 'Chimaera' mit Xfce
[-] Fedora 30 x86 mit Gnome 3
[+] Kubuntu 18.04 x86 mit KDE
[+] Linux Mint 19 x86 'Tara' mit Cinnamon
[+] Linux Mint 19.3 x64 'Tricia' mit Cinnamon
[+] Lubuntu 18.04 x86 mit LXDE
[-] MX Linux 19.4 'Patito Feo' x86 mit Xfce
[-] Raspbian GNU/Linux 10 'Buster' ARM32 mit LXDE
[-] Raspbian GNU/Linux 11 'Bullseye' ARM32 mit LXDE
[-] Q4OS 3.8 x86 'Centaurus' mit Trinity
[+] Ubuntu 18.04 x86 mit Gnome 3
[+] Ubuntu Budgie 18.04 x86 mit Budgie
[+] Ubuntu MATE 18.04 x86 mit MATE
[+] Xubuntu 18.04 x86 mit Xfce

Ergebnis: Alle von Ubuntu abgeleiteten Distributionen zeigen das Icon an, von Debian oder anderen Distributionen abgeleitete Distributionen zeigen kein Icon an!
Antworten