diff --git a/headers/private/shared/IconView.h b/headers/private/shared/IconView.h index 888eec13da..efeccfdc8c 100644 --- a/headers/private/shared/IconView.h +++ b/headers/private/shared/IconView.h @@ -1,5 +1,11 @@ -// Author: Michael Wilber -// Copyright (C) Haiku, uses the MIT license +/* + * Copyright 2004-2020, Haiku. + * Distributed under the terms of the MIT License. + * + * Authors: + * Adrien Destugues, pulkomandy@pulkomandy.tk + * Michael Wilber + */ #ifndef ICONVIEW_H #define ICONVIEW_H @@ -22,6 +28,8 @@ public: void DrawIcon(bool draw); status_t SetIcon(const BPath& path, icon_size iconSize = B_LARGE_ICON); + status_t SetIcon(const uint8_t* hvifData, size_t size, + icon_size iconSize = B_LARGE_ICON); private: void _SetSize(); diff --git a/src/apps/firstbootprompt/BootPrompt.rdef b/src/apps/firstbootprompt/BootPrompt.rdef index 68eb6b1f69..66dad53b2c 100644 --- a/src/apps/firstbootprompt/BootPrompt.rdef +++ b/src/apps/firstbootprompt/BootPrompt.rdef @@ -16,3 +16,310 @@ resource app_version { }; resource app_flags B_EXCLUSIVE_LAUNCH; + +resource(1, "Desktop") #'VICN' array { + $"6E6369660F050004006B020006023A498437D931BA09203C6B6D4B49E74A11B7" + $"01663300FF9B663203603307020006023393B0B84A2E3B59D6369E0646DFD84A" + $"A888007C3F03FF66330003CB986702000602B2F596355C9ABD515DBAEBB14A33" + $"354A96BF00A8733FFFD69E6803986432020006023E20000000000000003D8000" + $"49C00046000000FFEDDCFFFFCB98020006023A498437D931BA09203C6B6D4B39" + $"E749636E0089511AFF98622D05FF020116023C0F0A0000000000003C2F0A4AB5" + $"5C4766660080FF000201160338A28F00000000000038228F4AE1D748575C00FF" + $"54FFFF80020016023400000000000000003800004B0000478D1E00FFFF800201" + $"06023C7FE93652B8B419503A42244A941840DDAF0000FF00FF108E35180A032E" + $"543854384A0A0546605A4A5A47604A4E6008092638264E2E52364A3A4C3A5846" + $"5E5A495A390A062234223748485E375E3438280A04465E5A495A3846490A0438" + $"28223448445E340A032E462E52364A0A083A5846CBAD46C28926BD5B264E2E52" + $"2E463AC4870A042E482E46264226440A04B920C27C2E462E3EB920BF4D0A0446" + $"5446523A4C3A4E0A043A4C384B38433A440A0428C2762CC3422CC42628C35A0A" + $"0429C38D2CC4262CC4A429C40B0A0442C1EA56B9F138B3F824BBEF0A04484448" + $"485E375E340A0422342237484848440A0446303A392F353B3B0A043B2D46303A" + $"392F350A053C3439353CBBF7C187BBF7C187340A0854355138C7B738C81D3957" + $"395E34593456350606FE0A47264923C29FB48C49234B224B224D21562554B430" + $"58275929552B02045033C70133C53D334C354CBAEC4CBBCE5037C53D37C70137" + $"543554BBCE54BAEC0A044F344F2C512C5134200A01020100000A000102100117" + $"8400040A020104000A040106000A060107000A0704080A090B000A03010C0815" + $"FF0A03010C28201615FF0A03010C282A1C15FF0A03010C28362215FF0A03010C" + $"28362C15FF0A08010D0815FF0A08010D28201615FF0A08010D282A1C15FF0A08" + $"010D28362215FF0A08010D28362C15FF0A0001031815FF01178400040A000103" + $"18001501178600040A080105000A050110000A09010F000A050111000A0A0112" + $"000A000113000A0400000A050114000A0B0216171001178400040A0C0116000A" + $"0D0117000A0001151815FF01178402040A00011518001501178502040A0E0115" + $"00" +}; + +resource(2, "Installer") #'VICN' array { + $"6E6369660F0500020006023861093AA03CBD302A3AE36E4A1739473BE7009A9A" + $"9AFF38415005A203606C7E020006023B243D3CD85EBD486D3B9FF848FB2749CB" + $"D200C7ECFFFF5FBBEB03339CD30200060236D5293AEBDDBDE32D39C4F74ABF1B" + $"4A0D19001F8CC4FF214C8B020016023309E2394B04BD3A8536FAA94A315146C1" + $"8900B9FFE9020016023C00000000000000003C00004780000000000083FF9903" + $"1881B705CA020306053C5BB1BC8F083C10C13BCEA14A8FBE4A96F700F1F1F136" + $"D9DDF48A837EADB4B8BEDBFFF4F4F404EBD0020006023935563B7642BB7AAC39" + $"DC304ABC6949D16C004137A9FFB9B9B904017E100605E202325E383A5C4C6042" + $"604C603C540A0C26362656325C4648462C482840283E2A3A263A222428222E0A" + $"0326363E2A3E420A033E2A4232462C0A033E2A3E3442300A0526362656325C32" + $"3E283A0A042636283A323E323A0A04325C4648462C323A0A052A342432222E3A" + $"263E2A0A04222E3A263A2224280A042636323A303624320A04462C482840283E" + $"2A0204C88ABF6CCB56C2A2C5BFBC37BDBFBD91C0BEBAF5BAC0C02DBE27C878BB" + $"5CC543C0F3CBAEC8F3CA53C5F4CCEFCBF2C7B70204C4BFC2C4C57EC39FC400C1" + $"E9C2A1C25AC321C1EBC221C2C9C2C0C4A8C201C3CDC37EC583C4DDC512C45EC5" + $"81C55DC4A20204C5FCC634C6FBC555C4FCC713C1C0C560C33DC716C042C3AAC1" + $"83C112C083C1F0C283C033C59FC201C421C04BC71CC3B7060DEEAFBF03B793C4" + $"7DB6FDC61BB6E3C4F5B68FC55BB59DC4F5B6ADC6ABB584C5E5B6ADC6ABB592C6" + $"8DB6B0C6D5B592C68DB7ADC7BAB638C7ADB7ADC7BAB7BCC862B81CC87AB80DC7" + $"D2B80DC7D2B991C886BA0AC7AEBA0AC7AEB8ECC766B8E8C73CB8E8C73CB9FBC7" + $"06B9B5C5FEB87AC67CB8CBC5ECB860C556110A0E0100000A0001011001178400" + $"040A010102000A020103000A030104000A040105000A050106000A060107000A" + $"070108000A080109000A09010A000A0A010B000A00020C0D1815FF0117840004" + $"0A00020D0C18001501178600040A0B020C0E000A0C020E0D000A0D010E100117" + $"820004" +}; + +resource(3, "Keymap") #'VICN' array { + $"6E6369661E0500057705A705DF05C8050005FF0500057705A705DF05C8050005" + $"FF0500057705A705A705DF05C8050005FF04005405000380000003E4000003FF" + $"666603FF666603FFCCCC03FFCCCC17021CC676B65BC676B65BC64DB61DC5D7B5" + $"C0C619B5E6C5BDB5AEC59CB597C59BB597C59CB597C0C2B32DC0C2B32DC00AB2" + $"D1BE8AB382BF16B2F6BE8AB382BAE8B725BAE8B725BAE5B725BAA4B77CBAA4B7" + $"7CBAA9B776BAC3B752BABDB757BA8CB78DBA48B822BA64B7D4BA36B840BA22B8" + $"84BA28B861BA20B890BA20B8A8BA1FB89CBA20B89CBA23B886BA21B891BA23B8" + $"86B959BCDDB959BCDDB954BCE9B953BD02B953BCF5B953BD87BA29BE4EB9ABBE" + $"10BA2BBE50BA30BE50BA2DBE4FBA36BE53C080C176C080C176C0B0C18EC114C1" + $"96C0E2C198C118C196C121C197C120C197C156C19745C170C189C189C1B5C173" + $"C1A4C179C1ACC177C1B3C175C1D0C168C1C2C16FC1CAC16BC1BFC170C1C5C16D" + $"C1E9C15FC238C11EC212C145C238C11EC62CBD2AC62CBD2AC67CBCDAC6CDBBD0" + $"C6CDBC50C6CDBBD0C6CDB712C6CDB712C6C7B6C7C677B65BC6A8B688C677B65B" + $"0209C5E5B6E9C5E5B6E9C5CBB6B2C569B668C59FB685C5AAB69EC57CB72FC5B2" + $"B6EEC57CB72FC1A3BB06C1A3BB06C16CBB3EC13FBBD0C13EBB99C13FBBD0C13F" + $"C08FC13FC08FC13FC0C7C1A4C08FC16CC0C7C1A4C08FC598BC9BC598BC9BC5D0" + $"BC63C5FEBBD0C5FEBC09C5FEBBD0021AC13EBBD2C13EBBD2C13EBB9AC1A4BB08" + $"C16CBB40C1A4BB08C1C9BAE3C1C9BAE3C17DBB29C096BB15C0FABB3EC096BB15" + $"BB91B896BB91B896BB3CB85EBB77B7B5BB2EB7FEBB77B7B5BB74B7B4BB74B7B4" + $"BB67B7C1BB57B7DD35B7CFBB2EB808BAFEB878BB10B83DBAFDB878BAFDB879BA" + $"FDB879BAF2B884BAEAB8A8BAEAB893BAEAB8A8BA20BD02BA20BD02BA20BD39BA" + $"86BD99BA4DBD7EBA86BD99BA89BD9BBA89BD9BBA51BD7FBA24BD03BA23BD3BBA" + $"24BD03BA24BD02BA24BD02BA25BD3ABA8ABD99BA51BD7EBA8ABD99C0DDC0C1C0" + $"DDC0C1C0F3C0CBC118C0CBC107C0CEC11BC0CCC123C0CDC11FC0CDC140C0CDC1" + $"70C0B644C0C3C156C0BEC144C090C144C0B2C144C090C144C08FC144C08FC144" + $"C091C144C095C144C093C144C092C145C08EC145C090C145C08EC145BBD2C145" + $"BBD2C145BBD20209C541B64DC541B64DC541B64DC067B3E2C067B3E2BFFEB3AD" + $"BF1AB411BF68B3C2BF1AB411BB77B7B4BB77B7B4BB27B803BBA7B8A2BB3DB86E" + $"BBA7B8A2C081BB0DC081BB0DC0EABB42C1CFBADEC180BB2CC1CFBADEC571B73B" + $"C571B73BC5BFB6ECC541B64DC5AAB681C541B64D020CBF31B532BF31B532BF50" + $"B504BF6AB4DFBF6AB4DFBF6BB4DFBF23B526BF4AB4FFBF23B526BC0FB839BC0F" + $"B839BBE8B860BBB4B898BBBFB88BBBB4B898BBB7B8A6BBB4B898BBB9B8B3BBBA" + $"B8B3BBB9B8B3BBCEB8C2BC3A2FBC08B8E1BC3A2FC05CBB0BC05CBB0BC08EBB24" + $"C066BAFBC092BB1DC066BAFBBD4BB8A9BD4BB8A9BD1FB888BD34B819BD14B847" + $"BD34B8190210C1CDB6EEC1CDB6EEC125B69AC033B735C09AB6F3BFC7B77ABF68" + $"B77BBF93B791BF30B75FBF7BB702BF5CB721BFCDB6B0C03EB6D6C015B6C9C03E" + $"B6D6C09FB66BC09FB66BC000B623BF0CB6C9BF71B664BE76B75FBF11B7E2BEC6" + $"B7BDBFA8B82DC083B7A5C03FB7D0C101B756C16BB755C131B738C197B76BC165" + $"B7E9C1ADB7A1C107B847C072B818C09AB824C072B818C01BB882C01BB882C113" + $"B8DFC1D8B824C1A1B85BC1F0B80CC234B79CC222B7D7C23FB761C1CEB6EEC221" + $"B718C1CEB6EE060FFEFFAF3FC570B73BC1CEBADDC1CEBADDC17FBB2DC081BB0D" + $"C0EABB42C081BB0DBBA6B8A2BBA6B8A2BB3DB86EBB76B7B5BB28B804BB76B7B5" + $"BB74B7B4BB74B7B4BB67B7C1BB57B7DD35B7CFBB2EB808BAFDB878BB0FB83EBA" + $"FDB878BAFDB879BAFDB879BAF1B884BAEAB8A8BAE9B893BAEAB8A8BA1FBD02BB" + $"92B979C028BBC2C028BBC2C0DFBC1EC235BB41C14ABC2DC31DBA56C571B73BC5" + $"70B73BC571B73B021CC023BCAFC023BCAFBFFABC70BF84BC13BFC6BC39BF69BC" + $"01BF49BBEBBF48BBEBBF49BBEBBA6EB980BA6EB980B9B7B924B837B9D5B8C3B9" + $"49B837B9D5B494BD78B494BD78B491BD78B451BDD0B451BDD0B456BDC9B470BD" + $"A5B46ABDABB438BDE0B3F4BE75B410BE27B3E2BE93B3CFBED7B3D5BEB4B3CDBE" + $"E322BEFB22BEF022BEF0B3CFBED9B3CDBEE4B3CFBED9B306C331B306C33120C3" + $"3D20C35520C34920C3DAB3D6C4A2B358C463B3D8C4A3B3DDC4A3B3DAC4A2B3E2" + $"C4A6BA2DC7C932C7C9BA5DC7E1BAC0C7E9BA8FC7EBBAC4C7E9BACDC7EBBACDC7" + $"EBBB03C7EBBB6AC7C3BB36C7DDBB62C7C7BB50C7CDBB59C7CBBB60C7C9BB7CC7" + $"BBBB6EC7C3BB77C7BEBB6CC7C3BB71C7C0BB96C7B3BBE5C772BBBEC798BBE5C7" + $"72BFD9C37DBFD9C37DC028C32EC07A46C079C2A4C07A46C07ABD65C07ABD65C0" + $"74BD1AC023BCAFC054BCDBC023BCAF0209BF92BD3DBF92BD3DBF78BD05BF16BC" + $"BCBF4CBCD8BF57BCF1BF28BD82BF5FBD41BF28BD82BB51C159BB51C159BB19C1" + $"92BAEC46BAECC1ECBAEC46BAECC6E2BAECC6E2BAECC71ABB52C6E2BB19C71ABB" + $"52C6E2BF46C2EEBF46C2EEBF7EC2B7BFAC46BFABC25CBFAC46021ABAEBC226BA" + $"EBC226BAEBC1EEBB50C15BBB18C193BB50C15BBB75C137BB75C137BB29C17DBA" + $"42C169BAA6C191BA42C169B53EBEE9B53EBEE9B4E8BEB1B524BE09B4DABE52B5" + $"24BE09B521BE07B521BE07B514BE14B504BE30B50BBE22B4DABE5CB4ABBECBB4" + $"BCBE90B4AABECCB4AABECDB4AABECCB49EBED7B497BEFBB496BEE6B497BEFB22" + $"C35522C35522C38D23C3EDB3FAC3D023C3EDB435C3EEB435C3EEB3FEC3D2B3D0" + $"49B3D0C38EB3D049B3D0C355B3D0C355B3D2C38EB436C3ECB3FEC3D1B436C3EC" + $"BA8AC714BA8AC714BAA0C71FBAC5C71EBAB4C722BAC8C71FBACFC720BACBC720" + $"BAECC720BB1DC709BB05C716BB03C711BAF1C6E4BAF0C706BAF1C6E4BAF1C6E3" + $"BAF1C6E3BAF1C6E4BAF1C6E8BAF0C6E6BAF1C6E6BAF2C6E1BAF1C6E4BAF2C6E1" + $"BAF2C226BAF2C226BAF2C2260209BEEDBCA0BEEDBCA0BEEDBCA0BA14BA35BA14" + $"BA35B9AABA00B8C6BA65B915BA16B8C6BA65B524BE07B524BE07B4D4BE56B554" + $"BEF6B4E9BEC1B554BEF6BA2DC160BA2DC160BA97C195BB7CC130BB2DC17FBB7C" + $"C130BF1EBD8EBF1EBD8EBF6CBD3FBEEEBCA0BF57BCD5BEEEBCA0020CB8DDBB86" + $"B8DDBB86B8FDBB58B917BB32B917BB32B918BB32B8D0BB79B8F7BB52B8D0BB79" + $"B5BCBE8DB5BCBE8DB594BEB4B561BEEBB56BBEDEB561BEEB26BEF9B561BEEBB5" + $"66BF07B566BF07B566BF07B57BBF15B5E6BF4EB5B4BF35B5E6BF4EBA09C15EBA" + $"09C15EBA3BC177BA13C14FBA3FC170BA13C14FB6F8BEFDB6F8BEFDB6CCBEDBB6" + $"E1BE6CB6C1BE9AB6E1BE6C0A08B8F3BCE7B885BD54BA6ABF71BAD8BF02BA68BE" + $"8BBB35BDBFBBFBBDDFBC6CBD6E0A03BA14BE32B95BBD6EBAA1BDA6060FFEFFAF" + $"3FBF1EBD8EBB7BC130BB7BC130BB2CC180BA2DC160BA96C195BA2DC160B553BE" + $"F6B553BEF6B4EABEC1B523BE08B4D5BE57B523BE08B521BE07B521BE07B514BE" + $"14B503BE30B50ABE22B4DABE5CB4AABECBB4BCBE90B4AABECCB4AABECDB4AABE" + $"CCB49EBED7B497BEFBB496BEE6B497BEFB22C355B53EBFCCB9D5C216B9D5C216" + $"BA8CC271BBE2C195BAF7C280BCCAC0AABF1EBD8EBF1EBD8EBF1EBD8E001BCBFF" + $"BE43CBFFBE43CBD6BE05CB60BDA8CBA2BDCECB46BD96CB25BD80CB24BD80CB25" + $"BD80C64BBB15C64BBB15C593BAB9C413BB6AC49FBADEC413BB6AC071BF0DC071" + $"BF0DC06EBF0DC02DBF64C02DBF64C032BF5EC04CBF3AC046BF3FC015BF75BFD1" + $"C00ABFEDBFBCBFBFC028BFABC06CBFB1C049BFA9C078BFA9C090BFA8C084BFA9" + $"C084BFACC06EBFAAC079BFACC06EBEE2C4C5BEE2C4C5BEC7C559BFB4C636BF34" + $"C5F7BFB6C637BFBBC638BFB8C637BFC1C63BC60CC95EC60BC95EC63CC976C69F" + $"C97DC66EC980C6A3C97EC6ACC97FC6ACC97FC6E1C97FC749C958C714C972C740" + $"C95BC72FC961C737C95FC73EC95DC75B58C74DC957C756C953C74BC958C750C9" + $"55C775C947C7C4C906C79DC92CC7C4C906CBB8C512CBB8C512CC07C4C2CC59C3" + $"B9CC58C439CC59C3B9CC59BEFACC59BEFACC50BEAFCBFFBE43CC31BE70CBFFBE" + $"430209CB6EBED2CB6EBED2CB54BE9ACAF2BE51CB28BE6DCB33BE86CB04BF17CB" + $"3BBED6CB04BF17C72DC2EFC72DC2EFC6F5C326C6C8C3B9C6C8C381C6C8C3B9C6" + $"C8C878C6C8C878C6C8C8AFC72EC878C6F6C8AFC72EC878CB22C484CB22C484CB" + $"5AC44BCB88C3B9CB88C3F1CB88C3B90219C6C7C3BBC6C7C3BBC6C7C383C72D48" + $"C6F5C328C72D4853C2CC53C2CCC706C312C61EC2FDC683C326C61EC2FDC11AC0" + $"7EC11AC07EC0C5C046C100BF9EC0B6BFE6C100BF9EC0FDBF9CC0FDBF9CC0F0BF" + $"A9C0DFBFC5C0E7BFB7C0B6BFF1C086C060C09841C086C060C086C061C086C061" + $"C07BC06CC073C090C073C07BC073C090BFA9C4EABFA9C4EABFA9C521C00EC582" + $"BFD6C565C00EC582C011C583C011C583BFDAC567BFADC4EBBFACC523BFADC4EB" + $"BFADC4EABFADC4EABFAEC522C012C581BFDAC566C012C581C666C8A9C666C8A9" + $"C67CC8B3C6A1C8B3C690C8B6C6A4C8B4C6ACC8B5C6A8C8B5C6C9C8B5C6F9C89E" + $"C6E1C8ABC6DFC8A6C6CDC879C6CDC89BC6CDC879C6CDC878C6CDC878C6CDC879" + $"C6CDC87DC6CDC87BC6CDC87BC6CEC876C6CEC879C6CEC876060EBFFBFF0FC6C7" + $"C3BBC6C7C3BBC6C7C383C61EC2FDC683C326C61EC2FDC11AC07EC11AC07EC0C5" + $"C046C073C090BFB3C494BFB3C494BF8DC514C00EC582C666C8A9C666C8A9C67C" + $"C8B3C6A1C8B3C690C8B6C6A4C8B4C6ACC8B5C6A8C8B5C6C9C8B5C6F9C89EC6E1" + $"C8ABC6DFC8A6C6CDC879C6CDC89BC6CDC879C6CDC878C6CDC878C6CDC879C6CD" + $"C87DC6CDC87BC6CDC87BC6CEC876C6CEC879C6CEC8760209CACABE35CACABE35" + $"CACABE35C5F0BBCAC5F0BBCAC587BB95C4A2BBF9C4F1BBABC4A2BBF9C100BF9C" + $"C100BF9CC0B0BFEBC130C08AC0C6C056C130C08AC60AC2F5C60AC2F5C673C32A" + $"C758C2C6C709C314C758C2C6CAFBBF23CAFBBF23CB48BED4CACABE35CB33BE69" + $"CACABE350604EE4D38C1A9C036C17EBF27C1BFC0C4C62CC2D6C2BDBFF3C297C0" + $"E7C2E2BEFE0A0AC7A0BEFBC67DC01EC5C8BE20C55DBDEAC3E6BF61C459BF9CC5" + $"48BEACC5F8C097C674C0D4C813BF350608FFBE5149524950494442454343414E" + $"364F364D364241433F4143404E434442454443514B504B524B5D3E1E0A000100" + $"000A010101000A020102000A030103000A040104000A050105000A060106000A" + $"070107000A080108000A090109000A0A010A000A0B010B000A0C020C0D000A0D" + $"010E000A0E010F000A0F0110000A100111000A110112000A120113000A130114" + $"000A140115000A150116000A1600000A1700000A1800000A1900000A1A00000A" + $"1B00000A1C00000A1D0000" +}; + +resource(4, "Language") #'VICN' array { + $"6E636966050500040057020106033D8AFE000000000000BD8AFE48F10748A078" + $"3132E4FFC80066FFFF0034CC020106033D0AFE000000000000BD0AFE48F10748" + $"A0785409B4B6D8033784FF051D61020106043D950B0000000000003D950B494F" + $"BC479BEC00D5FFD54C6EFF6E901EBC1EFF04B2040D02043C26C2FF26B9502626" + $"3C26B95026C2FF3C52B95052C2FF52523C52C2FF52B950026EC5DCB8B6C713BA" + $"A0C4CAB706C110B579C307B5D5C0A2B565BFC2B55BC032B55BBDBCB55BBA69B7" + $"BABBC5B63AB8F9B94FB89DBD9CB84FBB7EB8C7BE9AB924BF77B8E0BEE7B9DEC1" + $"1FBCE0C332BB38C279BEC5C405C2D8C31AC0FBC3FCC2C6C2C1C22FC2B7C27AC2" + $"BEC22FC2B7C227C2B7C227C2B7C227C2B7C241C2BDC241C2BDC206C2B0C199C2" + $"DBC1D0C2CBC159C2EEC0D4C2DDC115C2E5C051C2CEBF43C313BFB0C2B4BF3DC3" + $"13BF36C313BF36C313BF36C313BF20C313BF20C313BF20C313BDEDC313BE23C3" + $"13BDB9C2EDBD57C2DFBD87C2E3BD54C2DCBD3EC2C3BD3EC2C3BD31C2B4BD13C2" + $"A5BD26C2ABBD13C2A5BCA4C27EBCA4C27EBCA4C27EBC31C254BC31C254BC27C2" + $"51BC12C24FBC1DC250BC10C24BBC0FC242BC11C246BC0FC242BBF5C219BBF5C2" + $"19BBD3C1DEBB68C195BBAEC1A4BB71C16EBB58C129BB63C14EBB4BC101BB4BC0" + $"ADBB48C0D7BB4BC0ADBB4EC087BB4EC087BB52C054BB4DBFEEBB55C021BB9EBF" + $"93BBA9BEBFBBB0BF36BBA9BEBFBBA7BE93BBA7BE93BBA7BE53BBBCBE2FBBA8BE" + $"4BBBBCBE2FBBC7BE21BBC7BE21BC00BDD5BBE3BCFCBC5BBD3DBBE3BCFCBAB7BC" + $"58BAB7BC58BAB7BC58BA8BBC44BA90BC46BA8BBC44BA8BBC42BA8BBC42BA89BB" + $"EABA23BB79BA6ABBADBA23BB79BA12BB6BBA12BB6BBA12BB6BB9F8BB49B9F8BB" + $"49B9F8BB49B9AEBAF0B9AEBAF0B97EBAC3B928BAB1B950BAB5B924BAA9B91BBA" + $"9AB920BAA1B984BA6EB9DEB997B9B5B9F9B9F6B95DBA36B8F0BA0BB91FBA5EB8" + $"C4BA78B85EBA83B89EBACCB83DBB61B7E7BB18B813BB61B7E7BB6BB7E1BB6BB7" + $"E1BB6BB7E1BBFEB787BBFEB787BC65B74ABCB6B684BC94B6F6BCF5B68ABD58B6" + $"65BD2DB67BBDA8B695BE6DB651BE29B697BE6FB650BE88B64FBE7CB64FBE62B6" + $"A0BEE1B72FBE88B70EBEE4B733BEE9B73EBEE5B73ABED8B744BEC6B74ABEC6B7" + $"4ABEC6B74ABE75B7A5BE75B7A5BE63B7DDBE90B849BE74B817BE91B84CBE92B8" + $"52BE92B852BE94B85CBE9DB87ABE97B86BBE94B884BE8CB88DBE8CB88DBE3AB8" + $"F0BD92B98FBDB7B906BD92B98FBD8DB9A1BD8DB9A1BD64B9D8BD7EBA55BD59BA" + $"19BD7BBA5CBD77BA63BD77BA63BD56BAA0BD4DBB2CBD39BAE6BD60BB70BDCCBB" + $"CEBD98BBA2BDFFBBFABE73BC3FBE33BC27BEBEBC5CBF5EBC42BF12BC56BF5EBC" + $"42BFAC37BFAC37BFD0BC1EC01CBC0FBFF5BC0BC046BC14C083BC4EC066BC35C0" + $"4DBCD9C0F4BDDAC0B6BD63C0F4BDDAC107BDF9C102BDF2C0BABE84C127BF91C0" + $"B2BF1DC127BF91C133BF9DC133BF9DC131C00FC1C5C0F9C135C0D6C259C11CC3" + $"48C059C2EEC0C9C348C059C36BC02FC36BC02FC36BC02FC388C019C388C019C3" + $"A8C003C3DBBFC5C3C9BFE8C3EEBFA0C409BF52C3F0BF73C409BF52C409BF53C4" + $"09BF53C40DBF9AC495BFC1C450BFCEC4EBBFB3C542BF10C51FBF56C542BF10C5" + $"51BEF2C551BEF2C551BEF2C555BEEBC555BEEBC57FBEA3C568BDFCC59EBE47C5" + $"3ABDBBC4A3BDDFC4E1BDAAC4A3BDCAC4A3BDB5C4A3BDB5C4A3BDB5C4A5BD31C4" + $"A5BD31C4A8BD1EC4E8BCDFC4D2BCF5C4E8BCDFC4FEBCC9C4FEBCC9C4FEBCC9C5" + $"16BCB3C516BCB3C545BC8BC582BC20C571BC5EC58CBC05C588BBBCC586BBD9C5" + $"88BBBCC587BBA8C587BBA8C587BBA8C588BB9DC588BB9DC58DBB614EBAFAC584" + $"BB24C58ABADAC5C2BA5DC5B0BAA2C5C4BA62C5CBBA70C5CBBA70C5D9BA8EC60F" + $"BAD4C5EDBAB3C60ABB1FC648BBAAC627BB67C669BBEBC66FBC7BC670BC33C66F" + $"BC7BC672BCC4C672BCC4C674BCEAC66EBD37C678BD11C664BD5AC649BD9CC652" + $"BD79C633BDECC62CBE92C62DBE3FC621BED5C67FBF2CC648BF16C750BD0F0006" + $"BC12B6E4BC12B6E4BC32B6B0BC55B638BC47B674BB81B6ABBA2BB802BAC4B747" + $"BA88B7E3BB30B77EBADDB7B0BB59B765BBAAB733BB82B74DBBCBB71DBC12B6E4" + $"BBFCB707BC12B6E4001DBACDBFD1BACDBFD1BAEBBFAABB29BF5CBB13BF89BB43" + $"BF24BB34BE93BB34BED0BB34BE4DBB60BDEABB34BE25BB80BDBEBBABBD60BBA1" + $"BD98BB48BD2ABA81BCBEBAE5BCF3BA67BCB1BA20BC83BA2DBCA0BA0FBC5BBA0D" + $"BC02BA1FBC28B9FEBBE5B9BABBB6B9D0BBD0B99BBB91B95FBB44B983BB66B93D" + $"BB24B8F0BB2DB91CBB16B8C0BB48B8BEBADFB8C3BAFFB8B1BB14B89FBB7EB8A7" + $"BB49B8C9BB7EB8C5BBB2B8C3BB8AB8C6BBDBB8C9BC2EB8C7BC05B8D0BC40B8BA" + $"BC49B8CBBC49B8B4BC4BB8AABC4EB8AFBC4DB8A0BC57B893BC4BB898BC56B882" + $"BC4AB88FBD10B88EBD00B893BD49B8E1BDE7B88DBE03B90DBE04B923BE75B906" + $"BE4BB946BEA8B985BF00B973BEC1B997BF3EB9A3BFC1B998BF81B9B0C011BA17" + $"C05FB9DBC02EBA25C0B3BA75C127BA3DC0E7BA8FC144BAC0C17FBAA9C160BAD8" + $"C19FBAFCC17CBAE4C19DBADDC13ABAD7C0A6BAD3C0EFBADBC061BACDBFD1BAEA" + $"C013BACDBFD10009BD5EB5D7BD5EB5D7BD81B5EEBDB1B60EBD84B605BDD0B613" + $"BE19B601BE01B61ABE55B5C3BEF6B5C4BEB0B5EFBF2DB5A2BFA3B55EBF5BB55E" + $"BFCEB55DC00CB58CBFE9B578C03CB5A7C090B566C064B575BF3AB541BCA7B60E" + $"BDDDB57ABCECB623BD5EB5D7BD29B601BD5EB5D70005BF35B6EABF35B6EABF55" + $"B6ECBF9AB6F5BF7BB702BFCEB6E0BF87B67DBF9CB693BF78B66DBF3CB664BF2F" + $"B623BF45B690BF35B6EABF6BB6CCBF35B6EA0004BA07B87FBA07B87FBA0CB868" + $"B9EFB850B9FEB85FB982B8E4B8F0BA35B92CB988B97E31BA07B87FB974B8F0BA" + $"07B87F0066C6F7BC24C6F7BC24C6DCBB0AC6002FC68BB9F2C5B9B87CC4FFB79C" + $"C563B805C4CEB768C463B709C49AB737C452B6FBC428B6EFC440B6E2C412B6FA" + $"C407B6C1C401B6D1C316B60FC0D0B56FC1F9B59AC0FBB58BC15FB59CC131B589" + $"C170B5A2C179B5C9C19FB5BDC12DB5E2C08AB5C9C0D7B5C4C05AB5CDC03FB60E" + $"C043B5DDC03DB629C040B676C036B65DC04BB694C0B6B65FC0A8B66FC0CDB643" + $"C0F1B61AC0B1B608C108B64BC0D0B6B1C13AB6D6C0B5B6A7C066B689C083B67C" + $"C064B68AC05DB6AFC05FB6ABC053B6C0C031B6D0C044B6CBBFE6B6E5BF94B741" + $"BFB0B6EFBF87B769BF5DB791BF88B781BF3BB79DBEF7B7B2BF17B7A4BECCB7C7" + $"BEFAB81CBEEAB7FFBF06B830BF19B86CBF03B860BF59B891BFBEB7E0BFA3B802" + $"BFE1B7B3C038B7ADC008B7BDC04FB7A6C084B777C06CB76EC0D3B795C0F8B83E" + $"C0EBB7F4C110B83FC135B810C100B802C10DB7E5C0ECB77043B7ABC125B795C1" + $"5FB7FDC14DB7BDC170B83DC1C2B820C18EB860C1CFB813C1FDB7D5C1E2B7BDC2" + $"14B7EAC1F1B838C215B82FC206B84BC23AB83DC222B843C25AB834C28BB842C2" + $"6CB836C2AFB850C2FAB857C2D5B854C320B859C347B898C335B87BC377B8E7C2" + $"4AB8C5C259B8C6C228B8C3C1E2B8D0C202B8C2C1C9B8DAC199B8F0C1B62FC179" + $"B8E5C13FB8B6C15BB8C8C118B89CC0C5B872C0EFB885C07FB853BFE3B84FC02F" + $"B83FBFBFB856BF7FB87CBF9CB866BF5CB897BF11B8A4BF35B87FBEDCB8DCBE6E" + $"B942BEB6B91FBE51B950BE19B976BE2EB95CBE04B990BDF6B9D1BE04B9B4BDE9" + $"B9EEBDE2BA1DBDCAB9FCBDF8BA3CBDEFBA76BDFEBA53BDD9BAA9BDC9BB27BD9F" + $"BAEFBDF235BE71BBBCBE3ABB94BEAFBBE9BF41BBD2BEFBBBE5BF83BBC1C009BB" + $"9CBFC5BBA1C05FBB96C0DDBC03C0A1BBCDC104BC26C0F5BC67C114BC34C0D3BC" + $"9FC103BD00C0E8BCC8C11FBD37C159BDA3C13CBD6DC166BDBAC182BDE8C177BD" + $"D0C18EBE04C16DBE2DC17BBE15C152BE5EC13FBECFC13FBE97C13FBF0EC185BF" + $"4CC15DBF24C1AABF71C1A4BFE3C1A8BFB3C1A0C025C1DBC087C1B3C053C216C0" + $"8AC289C06CC253C086C2CBC04DC319BFDEC2E8C00FC347BFB0C386BF66C378BF" + $"ABC396BF13C3FEBEBFC3C2BEF2C435BE90C430BE0CC42EBE4DC432BDC0C433BD" + $"22C429BD6DC43CBCDEC4ABBC78C47EBCA7C4CDBC56C512BC03C505BC34C519BB" + $"E7C513BBA8C51336C513BB93C51135C51ABB71C4F8BB29C47EBB2CC48ABB5DC4" + $"76BB0EC48BBB01C477BB14C4A1BAEDC478BACDC48BBAD8C442BAADC3F1BA66C4" + $"18BA9AC3CCBA36C391B9CBC3AEBA00C389B9BEC36CB93BC342B92EC39AB94AC3" + $"E2B9A3C3C4B981C419B9DFC46DBA6AC44ABA20C46EBA73C496BA8AC48FBA85C4" + $"AFBA9CC4EABAA8C4CABAABC533BAA2C55ABA20C555BA61C562B9C7C4E8B9AFC5" + $"1DB9DAC4CAB997C49EB958C4B6B975C48FB946C474B90EC466B92AC493B8F9C4" + $"BDB91DC49FB90BC4E0B932C52CB951C505B944C555B95EC5B4B96CC592B952C5" + $"C9B97CC5E7B9B8C5D9B9A2C5FEB9DCC627BA26C614BA00C645BA61C694BA9FC6" + $"4DBA89C667BAE8C6B6BB83C693BB3FC6DFBBD4C6E3BC7CC6E4BC23C6E2BCCEC6" + $"D0BD79C6F5BD2CC6A7BDCCC69FBE9AC69FBE3EC6A1BE95C6A5BE88C6A3BE8DC6" + $"A2BE8FC6A1BEC0C696BEBEC6B2BEC4C6D6BE02C6D2BE15C6F6BD65C6F7BC24C7" + $"00BCC4C6F7BC240008C301B7D8C301B7D8C2E6B7DCC2D4B7A4C2E8B7AEC2B1B7" + $"92C269B7B8C288B7A7C204B7EFC236B743C221B77BC239B73AC285B744C27AB7" + $"46C2A7B740C2F3B74FC2D8B731C30CB76BC33CB7A1C31FB787C360B7C2C301B7" + $"D8C31CB7D4C301B7D80004BB53C203BB53C203BB45C20DBB26C221BB38C21DBB" + $"55C249BBBAC291BB87C26EBB92C265BB53C203BB84C227BB53C2030005C4F4BE" + $"2EC4F4BE2EC4D3BE57C48CBEA4C4A6BE76C46EBEDAC47DBF53C47DBF18C4B6BF" + $"38C4EDBEB9C4D0BEECC502BE93C4F4BE2EC531BE48C4F4BE2E0009C213C327C2" + $"13C327C17FC390BFF7C345C09DC332BFD0C349BF8EC36ABFACC350BF67C38CBF" + $"20C386BF56C386BEAFC386BDCDC386BE3EC386BEC1C3CBC0C0C3BABFC4C3DDC1" + $"37C3AAC221C367C1AFC38EC22AC364C262C32BC280C337C249C322C213C327C2" + $"2AC331C213C32702044844C83744BDA844304F30C34E30C825485ABDA85AC837" + $"5A604F60C82560C34E050A01010C000A0001001001178400040A020100000A03" + $"0101024065C80000000000004065C8C69779BF1CDB0A040A0304050607080A0B" + $"0209024065C80000000000004065C8C69779BF1CDB" +}; + diff --git a/src/apps/firstbootprompt/BootPromptWindow.cpp b/src/apps/firstbootprompt/BootPromptWindow.cpp index 7718bb1711..5d052b72b9 100644 --- a/src/apps/firstbootprompt/BootPromptWindow.cpp +++ b/src/apps/firstbootprompt/BootPromptWindow.cpp @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include #include @@ -75,19 +77,10 @@ public: BStringItem(label), fLanguage(language) { - fIcon = new(std::nothrow) BBitmap(BRect(0, 0, 15, 15), B_RGBA32); - if (fIcon != NULL - && (!fIcon->IsValid() - || BLocaleRoster::Default()->GetFlagIconForLanguage(fIcon, - language) != B_OK)) { - delete fIcon; - fIcon = NULL; - } } ~LanguageItem() { - delete fIcon; } const char* Language() const @@ -98,26 +91,10 @@ public: void DrawItem(BView* owner, BRect frame, bool complete) { BStringItem::DrawItem(owner, frame, true/*complete*/); - - // Draw the icon - if (fIcon != NULL) { - frame.left = frame.right - kFlagWidth; - BRect iconFrame(frame); - iconFrame.Set(iconFrame.left, iconFrame.top + 1, - iconFrame.left + kFlagWidth - 2, - iconFrame.top + kFlagWidth - 1); - - owner->SetDrawingMode(B_OP_OVER); - owner->DrawBitmap(fIcon, iconFrame); - owner->SetDrawingMode(B_OP_COPY); - } } private: - static const int kFlagWidth = 16; - BString fLanguage; - BBitmap* fIcon; }; @@ -166,37 +143,64 @@ BootPromptWindow::BootPromptWindow() fInfoTextView->MakeSelectable(false); fInfoTextView->MakeResizable(false); - // Carefully designed to not exceed the 640x480 resolution with a 12pt font. - float width = fInfoTextView->StringWidth("Thank you for trying out Haiku," - " We hope you like it!") * 1.5; - float height = be_plain_font->Size() * 23; + BResources* res = BApplication::AppResources(); + size_t size = 0; + const uint8_t* data; - fInfoTextView->SetExplicitMinSize(BSize(width, height)); + BBitmap desktopIcon(BRect(0, 0, 23, 23), B_RGBA32); + data = (const uint8_t*)res->LoadResource('VICN', "Desktop", &size); + BIconUtils::GetVectorIcon(data, size, &desktopIcon); + + BBitmap installerIcon(BRect(0, 0, 23, 23), B_RGBA32); + data = (const uint8_t*)res->LoadResource('VICN', "Installer", &size); + BIconUtils::GetVectorIcon(data, size, &installerIcon); fDesktopButton = new BButton("", new BMessage(MSG_BOOT_DESKTOP)); fDesktopButton->SetTarget(be_app); fDesktopButton->MakeDefault(true); + fDesktopButton->SetIcon(&desktopIcon); fInstallerButton = new BButton("", new BMessage(MSG_RUN_INSTALLER)); fInstallerButton->SetTarget(be_app); + fInstallerButton->SetIcon(&installerIcon); + + data = (const uint8_t*)res->LoadResource('VICN', "Language", &size); + IconView* languageIcon = new IconView(B_LARGE_ICON); + languageIcon->SetIcon(data, size, B_LARGE_ICON); + + data = (const uint8_t*)res->LoadResource('VICN', "Keymap", &size); + IconView* keymapIcon = new IconView(B_LARGE_ICON); + keymapIcon->SetIcon(data, size, B_LARGE_ICON); fLanguagesLabelView = new BStringView("languagesLabel", ""); fLanguagesLabelView->SetFont(be_bold_font); fLanguagesLabelView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET)); + fKeymapsMenuLabel = new BStringView("keymapsLabel", ""); + fKeymapsMenuLabel->SetFont(be_bold_font); + fKeymapsMenuLabel->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, + B_SIZE_UNSET)); + // Make sure there is enough space to display the text even in verbose + // locales, to avoid width changes on language changes + float labelWidth = fKeymapsMenuLabel->StringWidth("Disposition du clavier") + + 16; + fKeymapsMenuLabel->SetExplicitMinSize(BSize(labelWidth, B_SIZE_UNSET)); + fLanguagesListView = new BListView(); - fLanguagesListView->SetFlags( - fLanguagesListView->Flags() | B_FULL_UPDATE_ON_RESIZE); - // Our ListItem rendering depends on the width of the view, so - // we need a full update BScrollView* languagesScrollView = new BScrollView("languagesScroll", fLanguagesListView, B_WILL_DRAW, false, true); + // Carefully designed to not exceed the 640x480 resolution with a 12pt font. + float width = 640 - (labelWidth + 96); + float height = be_plain_font->Size() * 23; + fInfoTextView->SetExplicitMinSize(BSize(width, height)); + fInfoTextView->SetExplicitMaxSize(BSize(width, B_SIZE_UNSET)); + // Make sure the language list view is always wide enough to show the - // largest language, with some extra space - fLanguagesListView->SetExplicitSize( - BSize(fLanguagesListView->StringWidth("Portuguese (Brazil)") + 32, + // largest language + fLanguagesListView->SetExplicitMinSize( + BSize(fLanguagesListView->StringWidth("Português (Brasil)"), height)); fKeymapsMenuField = new BMenuField("", "", new BMenu("")); @@ -206,29 +210,33 @@ BootPromptWindow::BootPromptWindow() _PopulateLanguages(); _PopulateKeymaps(); - BLayoutBuilder::Group<>(this, B_VERTICAL, 0) - .AddGroup(B_HORIZONTAL) - .Add(fLanguagesLabelView) - .SetInsets(B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING, - B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING) - .End() - .AddGroup(B_HORIZONTAL) + BLayoutBuilder::Group<>(this, B_HORIZONTAL) + .SetInsets(B_USE_WINDOW_SPACING) + .AddGroup(B_VERTICAL, 0) + .SetInsets(0, 0, 0, B_USE_SMALL_SPACING) + .AddGroup(B_HORIZONTAL) + .Add(languageIcon) + .Add(fLanguagesLabelView) + .SetInsets(0, 0, 0, B_USE_SMALL_SPACING) + .End() .Add(languagesScrollView) - .Add(fInfoTextView) - .SetInsets(B_USE_WINDOW_SPACING, 0) - .End() - .AddGroup(B_HORIZONTAL) + .AddGroup(B_HORIZONTAL) + .Add(keymapIcon) + .Add(fKeymapsMenuLabel) + .SetInsets(0, B_USE_DEFAULT_SPACING, 0, + B_USE_SMALL_SPACING) + .End() .Add(fKeymapsMenuField) - .AddGlue() - .SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING) .End() - .Add(new BSeparatorView(B_HORIZONTAL)) - .AddGroup(B_HORIZONTAL) - .AddGlue() - .Add(fInstallerButton) - .Add(fDesktopButton) - .SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING, - B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING) + .AddGroup(B_VERTICAL) + .SetInsets(0) + .Add(fInfoTextView) + .AddGroup(B_HORIZONTAL) + .SetInsets(0) + .AddGlue() + .Add(fInstallerButton) + .Add(fDesktopButton) + .End() .End(); fLanguagesListView->MakeFocus(); @@ -328,7 +336,7 @@ BootPromptWindow::_UpdateStrings() fInstallerButton->SetLabel(B_TRANSLATE("Run Installer")); fLanguagesLabelView->SetText(B_TRANSLATE("Language")); - fKeymapsMenuField->SetLabel(B_TRANSLATE("Keymap")); + fKeymapsMenuLabel->SetText(B_TRANSLATE("Keymap")); if (fKeymapsMenuField->Menu()->FindMarked() == NULL) fKeymapsMenuField->MenuItem()->SetLabel(B_TRANSLATE("Custom")); } diff --git a/src/apps/firstbootprompt/BootPromptWindow.h b/src/apps/firstbootprompt/BootPromptWindow.h index 255ee49acb..d3088ab0af 100644 --- a/src/apps/firstbootprompt/BootPromptWindow.h +++ b/src/apps/firstbootprompt/BootPromptWindow.h @@ -38,6 +38,7 @@ private: private: BTextView* fInfoTextView; BStringView* fLanguagesLabelView; + BStringView* fKeymapsMenuLabel; BListView* fLanguagesListView; BMenuField* fKeymapsMenuField; BMenuItem* fDefaultKeymapItem; diff --git a/src/kits/shared/IconView.cpp b/src/kits/shared/IconView.cpp index 5fdb0edf11..1fa696cd73 100644 --- a/src/kits/shared/IconView.cpp +++ b/src/kits/shared/IconView.cpp @@ -1,5 +1,11 @@ -// Author: Michael Wilber -// Copyright (C) Haiku, uses the MIT license +/* + * Copyright 2004-2020, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Adrien Destugues, pulkomandy@pulkomandy.tk + * Michael Wilber + */ #include "IconView.h" @@ -9,6 +15,7 @@ #include #include +#include #include #include @@ -72,6 +79,40 @@ IconView::SetIcon(const BPath& path, icon_size iconSize) } +status_t +IconView::SetIcon(const uint8_t* data, size_t size, icon_size iconSize) +{ + fDrawIcon = false; + + if (iconSize != fIconSize) { + BBitmap* bitmap = new BBitmap(BRect(iconSize), B_RGBA32); + if (bitmap == NULL) + return B_NO_MEMORY; + + delete fIconBitmap; + fIconBitmap = bitmap; + fIconSize = iconSize; + } + + status_t status = fIconBitmap->InitCheck(); + if (status != B_OK) + return status; + + status = BIconUtils::GetVectorIcon(data, size, fIconBitmap); + if (status != B_OK) + return status; + + if (!fIconBitmap->IsValid()) + return fIconBitmap->InitCheck(); + + _SetSize(); + + fDrawIcon = true; + Invalidate(); + return B_OK; +} + + void IconView::DrawIcon(bool draw) {