Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Iconos Del Sistema.
Autor Mensaje
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, 15:04; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Iconos Del Sistema. 
 
Ni idea, oiga...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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, 21:55; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Almacenamiento De Iconos jsoto61 General 1 Miercoles, 18 Noviembre 2009, 00:19 Ver último mensaje
nrcefe
No hay nuevos mensajes Usar Los Iconos Del Sistema geaplanet General 29 Miercoles, 25 Julio 2012, 08:31 Ver último mensaje
geaplanet
No hay nuevos mensajes Columnview Con Iconos david Controles/Librerías/Componentes 2 Jueves, 24 Octobre 2019, 22:05 Ver último mensaje
tincho
No hay nuevos mensajes Error En Los Iconos, Error De Gambas3 O De... v3ctor General 9 Domingo, 03 Noviembre 2019, 02:10 Ver último mensaje
v3ctor
 

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


 
Lista de permisos
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
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron