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.
Iconos Del Sistema.
Objetivo: Iconos Del Sistema.
última edición por tincho el Martes, 11 Septiembre 2018, 15:04; editado 1 vez
última edición por tincho el Martes, 11 Septiembre 2018, 15:04; editado 1 vez
Objetivo: Re: Iconos Del Sistema.
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, 21:55; editado 1 vez
tincho escribió: [Ver mensaje]
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, 21:55; editado 1 vez
Objetivo: Re: Iconos Del Sistema.
Bueno era un ejemplo, pero imagina otro que si este, ¿Como harias para referenciarlo en gambas de forma dinamica?
Saludos.
vuott escribió: [Ver mensaje]
Bueno era un ejemplo, pero imagina otro que si este, ¿Como harias para referenciarlo en gambas de forma dinamica?
Saludos.
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.
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.
Esta funcion es, como podran observar, ampliable a otros conjuntos de iconos.
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.
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.
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
'------------------------------------------------------------------------------
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
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.
Objetivo: Re: Iconos Del Sistema.
Ahora para el menú también solucionado.
Saludos.
'------------------------------------------------------------------------------
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
'------------------------------------------------------------------------------
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
Endif
End Select
Next
'------------------------------------------------------------------------------
Saludos.
Página 1 de 1
No puede crear mensajesNo puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
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.2462s (PHP: 45% SQL: 55%)
Consultas SQL: 25 - Debug off - GZIP Activado