Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Iconos Del Sistema.

Iconos Del Sistema.
Artículo
Responder citando    Descargar mensaje  
Mensaje 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 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Martes, 11 Septiembre 2018, 16:01 ]
 


Iconos Del Sistema.
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Iconos Del Sistema. 
 
Ni idea, oiga...



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Martes, 11 Septiembre 2018, 20:37 ]
Responder citando    Descargar mensaje  
Mensaje Re: Iconos Del Sistema. 
 
tincho escribió: [Ver mensaje]
¿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 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Martes, 11 Septiembre 2018, 22:53 ]
Responder citando    Descargar mensaje  
Mensaje Re: Iconos Del Sistema. 
 
vuott escribió: [Ver mensaje]
...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.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Miercoles, 12 Septiembre 2018, 00:33 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Domingo, 19 Enero 2020, 12:59 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Domingo, 19 Enero 2020, 19:08 ]
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno