Hello. Excuse if not on a theme, for association of icons to files "*.pb, *.pbi, *.pbv, *.pbp", has made so
Code: Select all
ProgPath.s=GetPathPart(ProgramFilename())
Per_Str.s = #LF$
Enumeration
#Window_0
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
#Text_6
#Text_7
#Text_8
#Text_9
#Text_10
#Text_11
#String_0
#String_1
#Button_0
#Button_1
#Button_2
#Button_3
#Button_4
#Button_5
#Button_6
#Button_7
#Button_8
#Button_9
#Button_10
EndEnumeration
ProgPath.s=GetPathPart(ProgramFilename())
If OpenWindow(#Window_0, 409, 227, 409, 255, "Установка иконки (.png)", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(#Text_0, 10, 10, 350, 20, "Иконка 16х16")
TextGadget(#Text_1, 10, 30, 350, 20, "Иконка 22х22")
TextGadget(#Text_2, 10, 50, 350, 20, "Иконка 32х32")
TextGadget(#Text_3, 10, 70, 350, 20, "Иконка 36х36")
TextGadget(#Text_4, 10, 90, 350, 20, "Иконка 48х48")
TextGadget(#Text_5, 10, 110, 350, 20, "Иконка 64х64")
TextGadget(#Text_6, 10, 130, 350, 20, "Иконка 72х72")
TextGadget(#Text_7, 10, 150, 350, 20, "Иконка 96х96")
TextGadget(#Text_8, 10, 170, 350, 20, "Иконка 128х128")
TextGadget(#Text_9, 10, 190, 350, 20, "Иконка 192х192")
TextGadget(#Text_10, 20, 210, 180, 20, "MIME тип (лучше не менять)", #PB_Text_Center)
TextGadget(#Text_11, 90, 230, 10, 20, "/")
StringGadget(#String_0, 0, 230, 80, 20, "users")
StringGadget(#String_1, 100, 230, 190, 20, "x-purebasic")
ButtonGadget(#Button_0, 360, 10, 40, 20, "...")
ButtonGadget(#Button_1, 360, 30, 40, 20, "...")
ButtonGadget(#Button_2, 360, 50, 40, 20, "...")
ButtonGadget(#Button_3, 360, 70, 40, 20, "...")
ButtonGadget(#Button_4, 360, 90, 40, 20, "...")
ButtonGadget(#Button_5, 360, 110, 40, 20, "...")
ButtonGadget(#Button_6, 360, 130, 40, 20, "...")
ButtonGadget(#Button_7, 360, 150, 40, 20, "...")
ButtonGadget(#Button_8, 360, 170, 40, 20, "...")
ButtonGadget(#Button_9, 360, 190, 40, 20, "...")
ButtonGadget(#Button_10, 300, 230, 100, 20, "УСТАНОВИТЬ")
EndIf
Repeat
WindowNumber = WaitWindowEvent()
GadgetNumber = EventGadget()
Select GadgetNumber
Case #Button_0
Ico_16x16$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_16x16$
SetGadgetText(#Text_0, Ico_16x16$)
EndIf
Case #Button_1
Ico_22x22$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_22x22$
SetGadgetText(#Text_1, Ico_22x22$)
EndIf
Case #Button_2
Ico_32x32$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_32x32$
SetGadgetText(#Text_2, Ico_32x32$)
EndIf
Case #Button_3
Ico_36x36$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_36x36$
SetGadgetText(#Text_3, Ico_36x36$)
EndIf
Case #Button_4
Ico_48x48$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_48x48$
SetGadgetText(#Text_4, Ico_48x48$)
EndIf
Case #Button_5
Ico_64x64$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_64x64$
SetGadgetText(#Text_5, Ico_64x64$)
EndIf
Case #Button_6
Ico_72x72$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_72x72$
SetGadgetText(#Text_6, Ico_72x72$)
EndIf
Case #Button_7
Ico_96x96$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_96x96$
SetGadgetText(#Text_7, Ico_96x96$)
EndIf
Case #Button_8
Ico_128x128$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_128x128$
SetGadgetText(#Text_8, Ico_128x128$)
EndIf
Case #Button_9
Ico_192x192$ = OpenFileRequester("Укажите зашифровываемый Файл",GetCurrentDirectory(),"Картинки (*.png)|*.png",0)
If Ico_192x192$
SetGadgetText(#Text_9, Ico_192x192$)
EndIf
Case #Button_10
If Ico_16x16$
RunProgram("xdg-icon-resource","install --context mimetypes --size 16 "+ReplaceString(GetFilePart(Ico_16x16$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_16x16$), #PB_Program_Wait)
EndIf
If Ico_22x22$
RunProgram("xdg-icon-resource","install --context mimetypes --size 22 "+ReplaceString(GetFilePart(Ico_22x22$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_22x22$), #PB_Program_Wait)
EndIf
If Ico_32x32$
RunProgram("xdg-icon-resource","install --context mimetypes --size 32 "+ReplaceString(GetFilePart(Ico_32x32$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_32x32$), #PB_Program_Wait)
EndIf
If Ico_36x36$
RunProgram("xdg-icon-resource","install --context mimetypes --size 36 "+ReplaceString(GetFilePart(Ico_36x36$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_36x36$), #PB_Program_Wait)
EndIf
If Ico_48x48$
RunProgram("xdg-icon-resource","install --context mimetypes --size 48 "+ReplaceString(GetFilePart(Ico_48x48$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_48x48$), #PB_Program_Wait)
EndIf
If Ico_64x64$
RunProgram("xdg-icon-resource","install --context mimetypes --size 64 "+ReplaceString(GetFilePart(Ico_64x64$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_64x64$), #PB_Program_Wait)
EndIf
If Ico_72x72$
RunProgram("xdg-icon-resource","install --context mimetypes --size 72 "+ReplaceString(GetFilePart(Ico_72x72$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_72x72$), #PB_Program_Wait)
EndIf
If Ico_96x96$
RunProgram("xdg-icon-resource","install --context mimetypes --size 96 "+ReplaceString(GetFilePart(Ico_96x96$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_96x96$), #PB_Program_Wait)
EndIf
If Ico_128x128$
RunProgram("xdg-icon-resource","install --context mimetypes --size 128 "+ReplaceString(GetFilePart(Ico_128x128$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_128x128$), #PB_Program_Wait)
EndIf
If Ico_192x192$
RunProgram("xdg-icon-resource","install --context mimetypes --size 192 "+ReplaceString(GetFilePart(Ico_192x192$), " ","\ ")+" gnome-mime-users-x-purebasic", GetPathPart(Ico_192x192$), #PB_Program_Wait)
EndIf
mime1.s = GetGadgetText(#String_0)
mime2.s = GetGadgetText(#String_1)
FileXML$ = ProgPath+mime2+".xml"
file_mime = OpenFile(#PB_Any, FileXML$)
If file_mime
mime.s = "<?xml version="+Chr(34)+"1.0"+Chr(34)+" encoding="+Chr(34)+"utf-8"+Chr(34)+"?>"+Per_Str
mime = mime + "<mime-info xmlns="+Chr(39)+"http://www.freedesktop.org/standards/shared-mime-info"+Chr(39)+">"+Per_Str
mime = mime + " <mime-type type="+Chr(34)+mime1+"/"+mime2+Chr(34)+">"+Per_Str
mime = mime + " <comment>PureBasic source code</comment>"+Per_Str
mime = mime + " <generic-icon name="+Chr(34)+"gnome-mime-"+mime1+"-"+mime2+Chr(34)+"/>"+Per_Str
mime = mime + " <glob pattern="+Chr(34)+"*.pb"+Chr(34)+"/>"+Per_Str
mime = mime + " <glob pattern="+Chr(34)+"*.pbi"+Chr(34)+"/>"+Per_Str
mime = mime + " <glob pattern="+Chr(34)+"*.pbv"+Chr(34)+"/>"+Per_Str
mime = mime + " <glob pattern="+Chr(34)+"*.pbp"+Chr(34)+"/>"+Per_Str
mime = mime + " </mime-type>"+Per_Str
mime = mime + "</mime-info>"
WriteString(file_mime, mime)
CloseFile(file_mime)
RunProgram("xdg-mime","install --novendor "+mime2+".xml", ProgPath, #PB_Program_Wait)
DeleteFile(FileXML$)
RunProgram("update-mime-database","~/.local/share/mime", GetHomeDirectory(), #PB_Program_Wait)
RunProgram("gtk-update-icon-cache","--ignore-theme-index -t ~/.local/share/icons/hicolor", GetHomeDirectory(), #PB_Program_Wait)
EndIf
EndSelect
Until WindowNumber = #PB_Event_CloseWindow