Iconos Del Sistema.


Objetivo: Iconos Del Sistema.
Hola a todos.
Cuando hacemos aplicaciones en gambas y usamos los iconos de "stock", estos tienen "casi siempre" la particularidad de adaptarse al escritorio en que corran.
Ahora bien, algunas veces me he topado con situaciones en las que esto no sucede. Razón por la cual me gustaría hacer el programa de tal manera que se adapte a un tema que este en el sistema de la misma manera que lo hacen tantos programas de GNU/Linux.
Así que aqui algunas preguntas:
¿Como saber que iconos se están usando en el sistema?
Si ,por ejemplo, deseo usar el icono de "application-epub+zip.svg".
En el tema Numix se encuentra en:
/usr/share/icons/Numix/48/mimetypes/application-epub+zip.svg
En el tema Elementary:
/usr/share/icons/Elementary-xfce/mimes/48/application-epub+zip.svg

¿Existe en gambas o en GNU/Linux una forma de "preguntarle" al sistema cual es el icono actual para epub_zip; por ejemplo?

Saludos.

última edición por tincho el Martes, 11 Septiembre 2018, 16:04; editado 1 vez
Perfil MP  
Objetivo: Re: Iconos Del Sistema.
Ni idea, oiga...

Perfil MP  
Objetivo: Re: Iconos Del Sistema.
tincho escribió:  
¿Existe en gambas o en GNU/Linux una forma de "preguntarle" al sistema cual es el icono actual para epub_zip; por ejemplo?

En Linux Mint no hay ningun icono que empieza por o tiene la palabra "epub" !

última edición por vuott el Martes, 11 Septiembre 2018, 22:55; editado 1 vez
Perfil MP  
Objetivo: Re: Iconos Del Sistema.
vuott escribió:  
...En Linux Mint no hay ningun icono que empieza por o tiene la palabra "epub" !

Bueno era un ejemplo, pero imagina otro que si este, ¿Como harias para referenciarlo en gambas de forma dinamica?

Saludos.

Perfil MP  
Objetivo: Re: Iconos Del Sistema.
Hola a todos.
Estoy usando una distribución basada en Gnome3, es decir con GTK3. Todos los iconos de los programa se adaptan perfectamente a los del escritorio dando al programa gambas un aspecto idéntico al resto.
Luego me puse a probar que tal iba todo en Linux mint 19.3 (Tricia) con mate 1.22.2 y los iconos eran (en el programa gambas) horribles, del etilo GTK arcaico.
si_codigo con_el_c_digo
Esta vez se me ocurrio como solucionar esto, por lo menos en parte, ya que no corrige los iconos del menú.
Aquí les comparto el código.

'------------------------------------------------------------------------------
Dim obj As Object
Dim ictn As New Collection
Dim z As Integer

ictn = GNumix(32)
For Each obj In Me.Controls
Select Object.Type(obj)
Case "ToolButton"
If obj.Picture Then
If obj.W = obj.H Then
z = obj.W
Select z
Case 35, 32, 28
If ictn.Exist(obj.Tag) Then
If Exist(ictn[obj.Tag]) Then
If Stat(ictn[obj.Tag]).Type = gb.File Or Stat(ictn[obj.Tag]).Type = gb.Link Then
obj.Picture = Image.Load(ictn[obj.Tag]).Stretch(20, 20).Picture
Print "> Control con icono: " & obj.Tag
Endif
Endif
Endif
End Select
Endif
Endif
End Select
Next
'------------------------------------------------------------------------------


Esta funcion es, como podran observar, ampliable a otros conjuntos de iconos.
Public Function GNumix(z As String) As Collection

Dim sDir As String
Dim ctn As New Collection

sDir = "/usr/share/icons/Numix/" & z & "/"

ctn.Add(sDir & "actions/default-document-open.svg", "open")
ctn.Add(sDir & "actions/window-close.svg", "close")
ctn.Add(sDir & "actions/document-new.svg", "new")
ctn.Add(sDir & "actions/default-folder-new.svg", "new-dir")

ctn.Add(sDir & "actions/document-save.svg", "save")
ctn.Add(sDir & "actions/archive-insert.svg", "archive")
'"archive-extract.svg"
ctn.Add(sDir & "places/inode-directory.svg", "directory")
ctn.Add(sDir & "actions/add.svg", "add")
ctn.Add(sDir & "actions/edit-delete.svg", "delete")

ctn.Add(sDir & "actions/document-import.svg", "download")
ctn.Add(sDir & "actions/document-export.svg", "upload")

ctn.Add(sDir & "actions/stock_edit.svg", "pen")
ctn.Add(sDir & "actions/document-print.svg", "print")
ctn.Add(sDir & "actions/edit-clear.svg", "clear")
'ctn.Add(sDir & "actions/edit-clear.svg", "database")
ctn.Add(sDir & "actions/table.svg", "table")
'ctn.Add(sDir & "", "filter")

ctn.Add(sDir & "actions/configure.svg", "options")
ctn.Add(sDir & "actions/processor.svg", "exec")

ctn.Add(sDir & "actions/previous.svg", "previous")
ctn.Add(sDir & "actions/next.svg", "next")

' Mimetypes
ctn.Add(sDir & "mimetypes/application-pdf.svg", "pdf")
ctn.Add(sDir & "mimetypes/application-vnd.oasis.opendocument.spreadsheet.svg", "ods")
ctn.Add(sDir & "mimetypes/application-vnd.oasis.opendocument.text.svg", "ods")
ctn.Add(sDir & "mimetypes/application-image-png.svg", "png")
ctn.Add(sDir & "mimetypes/application-image-jpg.svg", "jpg")
ctn.Add(sDir & "mimetypes/application-image-jpg.svg", "jpeg")
ctn.Add(sDir & "mimetypes/application-dwg.svg", "dwg")
ctn.Add(sDir & "mimetypes/wps-office-xls.svg", "xls")
ctn.Add(sDir & "mimetypes/wps-office-xls.svg", "xlsx")
ctn.Add(sDir & "mimetypes/application-vnd.ms-word.document.macroenabled.12.svg", "doc")
ctn.Add(sDir & "mimetypes/application-vnd.ms-word.document.macroenabled.12.svg", "docx")
ctn.Add(sDir & "mimetypes/audio-mp3.svg", "mp3")
ctn.Add(sDir & "mimetypes/video-mp4.svg", "mp4")
ctn.Add(sDir & "mimetypes/application-ogg.svg", "ogg")
ctn.Add(sDir & "mimetypes/audio-x-flac.svg", "flac")
'Media playing
ctn.Add(sDir & "actions/media-playback-start.svg", "play")
ctn.Add(sDir & "actions/media-playback-stop.svg", "stop")
ctn.Add(sDir & "actions/media-playback-pause.svg", "pause")
ctn.Add(sDir & "actions/media-playback-record.svg", "record")
'ctn.Add(sDir & "actions/media-playlist-repeat.svg", "")
'ctn.Add(sDir & "actions/media-playlist-shuffle.svg", "")
'ctn.Add(sDir & "actions/view-media-playlist.svg", "")
' otros
ctn.Add(sDir & "actions/help.svg", "help")
ctn.Add(sDir & "actions/stock_about.svg", "about")
ctn.Add(sDir & "actions/stock_refresh.svg", "refresh")
ctn.Add(sDir & "actions/exit.svg", "quit")
ctn.Add(sDir & "actions/find.svg", "find")

Return ctn
End

Podrán observar que uso el TAG del control, en este caso un ToolButton, y lo hago así porque no logro dar con una forma de saber la ruta del icono ya que el .picture no guarda esta información. ¿Alguna idea?
Bueno espero que les resulte útil el código y si se les ocurren mejoras estaré muy contento de aplicarlas.
Saludos.

Perfil MP  
Objetivo: Re: Iconos Del Sistema.
Ahora para el menú también solucionado.
'------------------------------------------------------------------------------
Dim obj As Object
Dim ictn As New Collection
Dim z As Integer
Dim mnu As Menu

ictn = dsk.GNumix(32)

For Each mnu In Me.Menus
For Each obj In mnu.Children
If Exist(ictn[obj.Tag]) Then
If Stat(ictn[obj.Tag]).Type = gb.File Or Stat(ictn[obj.Tag]).Type = gb.Link Then
obj.Picture = Image.Load(ictn[obj.Tag]).Stretch(20, 20).Picture
Print "#Menu " & Object.Type(obj) & " con icono: " & obj.Tag
Endif
Endif
Next
Next

For Each obj In Me.Controls
Select Object.Type(obj)
Case "ToolButton"
If obj.Picture Then
If obj.W = obj.H Then
z = obj.W
Select z
Case 35, 32, 28
If ictn.Exist(obj.Tag) Then
If Exist(ictn[obj.Tag]) Then
If Stat(ictn[obj.Tag]).Type = gb.File Or Stat(ictn[obj.Tag]).Type = gb.Link Then
obj.Picture = Image.Load(ictn[obj.Tag]).Stretch(20, 20).Picture
Print "> " & Object.Type(obj) & " con icono: " & obj.Tag
Endif
Endif
Endif
End Select
Endif
Endif
Case Else
If Exist(ictn[obj.Tag]) Then
Print "~ " & Object.Type(obj) & " con icono: " & obj.Tag
Print
Endif

End Select
Next
'------------------------------------------------------------------------------

Saludos.

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1876s (PHP: 71% SQL: 29%)
Consultas SQL: 22 - Debug off - GZIP Activado