diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index a03fec254e..fe3340f53f 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -300,6 +300,11 @@ switch $(HAIKU_CPU) { Exit "Currently unsupported target CPU:" $(HAIKU_CPU) ; } +# strip is required +if ! $(HAIKU_STRIP) { + Exit "HAIKU_STRIP not set. Please re-run configure." ; +} + # Include embedded board-specific file. if $(HAIKU_BOOT_BOARD) { include [ FDirName $(HAIKU_BUILD_RULES_DIR) board $(HAIKU_BOOT_BOARD) diff --git a/build/jam/Haiku64Image b/build/jam/Haiku64Image index 916e08052e..80ce8c827d 100644 --- a/build/jam/Haiku64Image +++ b/build/jam/Haiku64Image @@ -534,7 +534,7 @@ AddTargetVariableToScript $(script) : rc ; AddTargetVariableToScript $(script) : resattr ; AddTargetVariableToScript $(script) : unzip ; AddTargetVariableToScript $(script) : vmdkimage ; -AddTargetVariableToScript $(script) : $(HAIKU_STRIP) : stripCommand ; +AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ; if $(HOST_RM_ATTRS_TARGET) { AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ; } else { diff --git a/build/jam/HaikuCD b/build/jam/HaikuCD index e474296282..1d5a7b7bcb 100644 --- a/build/jam/HaikuCD +++ b/build/jam/HaikuCD @@ -34,7 +34,7 @@ AddTargetVariableToScript $(script) : rc ; AddTargetVariableToScript $(script) : resattr ; AddTargetVariableToScript $(script) : unzip ; AddTargetVariableToScript $(script) : generate_attribute_stores ; -AddTargetVariableToScript $(script) : $(HAIKU_STRIP) : stripCommand ; +AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ; if $(HOST_RM_ATTRS_TARGET) { AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ; } else { diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 9aab5280cc..a90dca68ca 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -913,7 +913,7 @@ AddTargetVariableToScript $(script) : rc ; AddTargetVariableToScript $(script) : resattr ; AddTargetVariableToScript $(script) : unzip ; AddTargetVariableToScript $(script) : vmdkimage ; -AddTargetVariableToScript $(script) : $(HAIKU_STRIP) : stripCommand ; +AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ; if $(HOST_RM_ATTRS_TARGET) { AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ; } else { diff --git a/data/catalogs/add-ons/input_server/devices/keyboard/fi.catkeys b/data/catalogs/add-ons/input_server/devices/keyboard/fi.catkeys index fe8ed428cc..ae4db9b0d7 100644 --- a/data/catalogs/add-ons/input_server/devices/keyboard/fi.catkeys +++ b/data/catalogs/add-ons/input_server/devices/keyboard/fi.catkeys @@ -1,8 +1,8 @@ 1 finnish x-vnd.Haiku-KeyboardInputServerDevice 2536418998 Kill application Team monitor Lopeta sovellus Quit application Team monitor Poistu sovelluksesta -Select an application from the list above and click one of the buttons 'Kill application' and 'Quit application' in order to close it.\n\nHold CONTROL+ALT+DELETE for %ld seconds to reboot. Team monitor Valitse sovellus yllä olevasta luettelosta ja napsauta yhtä painikkeista ’Tuhoa sovellus’ ja ’Lopeta sovellus’ sen sulkemiseksi.\n\nAlkulatauksen suorittamiseksi uudelleen pidä alhaalla Ctrl+Alt+Del -näppäimiä %ld sekuntia. -If the application will not quit you may have to kill it. Team monitor Jos sovellus ei sulkeudu, se on ehkä lopetettava se kill-komennolla. +Select an application from the list above and click one of the buttons 'Kill application' and 'Quit application' in order to close it.\n\nHold CONTROL+ALT+DELETE for %ld seconds to reboot. Team monitor Valitse sovellus yllä olevasta luettelosta ja napsauta yhtä painikkeista ’Lopeta sovellus’ ja ’Poistu sovelluksesta’ sen sulkemiseksi.\n\nAlkulatauksen suorittamiseksi uudelleen pidä alhaalla Ctrl+Alt+Del -näppäimiä %ld sekuntia. +If the application will not quit you may have to kill it. Team monitor Jos sovellus ei sulkeudu, se on ehkä lopetettava Pääteikkunassa kill-komennolla. Force reboot Team monitor Pakota uudelleenkäynnistys Team monitor Team monitor Ryhmävalvonta (This team is a system component) Team monitor (Tämä ryhmä on järjestelmäkomponentti) diff --git a/data/catalogs/add-ons/translators/icns/fi.catkeys b/data/catalogs/add-ons/translators/icns/fi.catkeys new file mode 100644 index 0000000000..f5b9359ed7 --- /dev/null +++ b/data/catalogs/add-ons/translators/icns/fi.catkeys @@ -0,0 +1,5 @@ +1 finnish x-vnd.Haiku-ICNSTranslator 2416672857 +Version %d.%d.%d, %s ICNSConfig Versio %d.%d.%d, %s +Apple icons ICNSTranslator Apple-kuvakkeet +Apple icon translator ICNSTranslator Apple-kuvakemuunnin +Apple icon translator ICNSConfig Apple -kuvakemuunnin diff --git a/data/catalogs/apps/fontdemo/ja.catkeys b/data/catalogs/apps/fontdemo/ja.catkeys index 6bc6cdbac5..c7c6e58a7a 100644 --- a/data/catalogs/apps/fontdemo/ja.catkeys +++ b/data/catalogs/apps/fontdemo/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-FontDemo 1300625863 +1 japanese x-vnd.Haiku-FontDemo 3522850500 Outline: ControlView アウトライン: Size: 50 ControlView サイズ: 50 Stop cycling ControlView 循環の中止 @@ -14,6 +14,7 @@ Rotation: 0 ControlView 回転: 0 Drawing mode: ControlView 描画モード: Haiku, Inc. ControlView Haiku, Inc. Controls FontDemo コントロール +FontDemo System name フォントデモ Outline: %d ControlView アウトライン: %d Text: ControlView テキスト: Antialiased text ControlView アンチエイリアスされたテキスト diff --git a/data/catalogs/apps/icon-o-matic/fi.catkeys b/data/catalogs/apps/icon-o-matic/fi.catkeys index de2dcb195b..778caae1f8 100644 --- a/data/catalogs/apps/icon-o-matic/fi.catkeys +++ b/data/catalogs/apps/icon-o-matic/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.haiku-icon_o_matic 3069426771 +1 finnish x-vnd.haiku-icon_o_matic 3933520036 Select All Icon-O-Matic-PathManipulator Valitse kaikki Add Style Icon-O-Matic-AddStylesCmd Lisää tyyli Color (#%02x%02x%02x) Style name after dropping a color Väri (#%02x%02x%02x) @@ -43,6 +43,7 @@ Untitled Icon-O-Matic-Main Otsikoton Multi Set Multi Set (property name) Useita asetuksia any of the other lists to Empty property list - 2nd line mikä tahansa toisista luetteloista kohteeseen Save as… Icon-O-Matic-Menu-File Tallenna nimellä... +Don't save Icon-O-Matic-Menu-Settings Älä tallenna Change Color Icon-O-Matic-SetColorCmd Vaihda väriä Style Icon-O-Matic-Menus Tyyli Icon-O-Matic-PathCmd @@ -72,6 +73,7 @@ Undo Icon-O-Matic-Main Peru Click on a shape above Empty transformers list - 1st line Napsauta yllä olevaa hahmoa Add Shape Icon-O-Matic-AddShapesCmd Lisää hahmo Contour Transformation Ääriviiva +Save changes to current icon before closing? Icon-O-Matic-Menu-Settings Tallennetaanko muutokset nykyiseen kuvakkeeseen ennen sulkemista? Icon-O-Matic-Menu-Edit Perspective Transformation Perspektiivi Move Transformer Icon-O-Matic-MoveTransformersCmd Siirrä muunnin diff --git a/data/catalogs/apps/mail/fi.catkeys b/data/catalogs/apps/mail/fi.catkeys index 1ea8587135..37a7ffa784 100644 --- a/data/catalogs/apps/mail/fi.catkeys +++ b/data/catalogs/apps/mail/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Be-MAIL 3366038826 +1 finnish x-vnd.Be-MAIL 233997769 View Mail Näkymä %d - Date Mail %d - Päivämäärä Attach attributes: Mail Liittämisattribuutit: @@ -107,6 +107,7 @@ Close Mail Sulje No matches Mail Ei täsmäyksiä The mail_daemon is not running. The message is queued and will be sent when the mail_daemon is started. Mail Taustaprosessi mail_daemon ei ole käynnissä. Viesti laitetaan jonoon ja lähetetään, kun mail_daemon käynnistyy. Really delete this signature? This cannot be undone. Mail Poistetaanko tämä allekirjoitus todella? Tätä ei voida perua. +Save this message as a draft before closing? Mail Tallennetaanko tämä viesti luonnoksena ennen sulkemista? Open Mail Avaa draft B_USER_DIRECTORY/mail/draft luonnos Quote Mail Lainaus @@ -120,6 +121,7 @@ Account: Mail Tili: Decoding: Mail Purkaminen: Sorry, could not find an application that supports the 'Person' data type. Mail ’Person’-tietotyyppiä tukevan sovelluksen löytäminen epäonnistui. Delete Mail Poista +Don't send Mail Älä lähetä Leave as '%s' Mail Jätä arvoksi ’%s’ Copy Mail Kopioi Mail couldn't find its dictionary. Mail Sähköpostisovellus ei löytänyt sanakirjaansa. @@ -134,6 +136,7 @@ Font: Mail Kirjasin: (Address unavailable) Mail (Osoite ei ole saatavilla) Save address Mail Tallenna osoite Queries Mail Kyselyt +Send this message before closing? Mail Lähetetäänkö viesti ennen sulkemista? Save Mail Tallenna Random Mail Satunnainen Close and Mail Sulje ja diff --git a/data/catalogs/apps/mediaconverter/de.catkeys b/data/catalogs/apps/mediaconverter/de.catkeys index fa592c91d1..41e1e12a2e 100644 --- a/data/catalogs/apps/mediaconverter/de.catkeys +++ b/data/catalogs/apps/mediaconverter/de.catkeys @@ -1,9 +1,11 @@ -1 german x-vnd.Haiku-MediaConverter 2955071341 +1 german x-vnd.Haiku-MediaConverter 2722282283 Video using parameters form settings MediaConverter Video benutzt die Parameter aus den Einstellungen Video encoding: MediaConverter Videokodierung: +Error read audio frame %lld MediaConverter Fehler beim Einlesen von Audio-Frame %lld No audio Audio codecs list Keine Tonspur Error MediaConverter Fehler Error loading a file MediaConverter Fehler beim Laden einer Datei +Error read video frame %lld MediaConverter Fehler beim Einlesen von Video-Frame %lld File Error MediaConverter-FileInfo Dateifehler Open… Menu Öffnen… Start [ms]: MediaConverter Anfang [ms]: @@ -22,6 +24,8 @@ Audio: MediaConverter-FileInfo Audio: OK MediaConverter-FileInfo OK seconds MediaFileInfo Sekunden Source files MediaConverter Quelldateien +Error writing video frame %lld MediaConverter Fehler beim Schreiben von Video-Frame %lld +Error writing audio frame %lld MediaConverter Fehler beim Schreiben von Audio-Frame %lld Cancelling MediaConverter Abbruch %d byte MediaFileInfo %d Byte Error loading files MediaConverter Fehler beim Laden der Dateien diff --git a/data/catalogs/apps/mediaconverter/fi.catkeys b/data/catalogs/apps/mediaconverter/fi.catkeys index 85b5b8d8d7..f07ffcaaeb 100644 --- a/data/catalogs/apps/mediaconverter/fi.catkeys +++ b/data/catalogs/apps/mediaconverter/fi.catkeys @@ -1,9 +1,11 @@ -1 finnish x-vnd.Haiku-MediaConverter 2955071341 +1 finnish x-vnd.Haiku-MediaConverter 2722282283 Video using parameters form settings MediaConverter Video käyttäen parametreja muotoasetuksiin Video encoding: MediaConverter Videokoodaus: +Error read audio frame %lld MediaConverter Virhe luettaessa äänikehystä %lld No audio Audio codecs list Ei ääntä Error MediaConverter Virhe Error loading a file MediaConverter Virhe ladattaessa tiedostoa +Error read video frame %lld MediaConverter Virheellisesti luettu videokehys %lld File Error MediaConverter-FileInfo Tiedostovirhe Open… Menu Avaa... Start [ms]: MediaConverter Alku [ms]: @@ -22,6 +24,8 @@ Audio: MediaConverter-FileInfo Ääni: OK MediaConverter-FileInfo Valmis seconds MediaFileInfo sekuntia Source files MediaConverter Lähdetiedostot +Error writing video frame %lld MediaConverter Virhe kirjoitettaessa videokehystä %lld +Error writing audio frame %lld MediaConverter Virhe kirjoitettaessa äänikehystä %lld Cancelling MediaConverter Perutaan %d byte MediaFileInfo %d tavu Error loading files MediaConverter Virhe ladattaessa tiedostoja diff --git a/data/catalogs/apps/mediaconverter/hu.catkeys b/data/catalogs/apps/mediaconverter/hu.catkeys index 849b63160e..c9f98f41a9 100644 --- a/data/catalogs/apps/mediaconverter/hu.catkeys +++ b/data/catalogs/apps/mediaconverter/hu.catkeys @@ -1,9 +1,11 @@ -1 hungarian x-vnd.Haiku-MediaConverter 2955071341 +1 hungarian x-vnd.Haiku-MediaConverter 2722282283 Video using parameters form settings MediaConverter Videó a beállítások paramétereivel Video encoding: MediaConverter Videó kódolása: +Error read audio frame %lld MediaConverter Hiba történt a %lld. hang olvasása közben No audio Audio codecs list Nincs hang Error MediaConverter Hiba Error loading a file MediaConverter Hiba történt a fájl betöltése során +Error read video frame %lld MediaConverter Hiba történt a %lld. képkocka olvasása közben File Error MediaConverter-FileInfo Fájlhiba Open… Menu Megnyitás… Start [ms]: MediaConverter Kezdet [ms]: @@ -22,6 +24,8 @@ Audio: MediaConverter-FileInfo Hang: OK MediaConverter-FileInfo Rendben seconds MediaFileInfo másodperc Source files MediaConverter Forrásfájlok +Error writing video frame %lld MediaConverter Hiba történt a %lld. képkocka írása közben +Error writing audio frame %lld MediaConverter Hiba történt a %lld. hang írása közben Cancelling MediaConverter Megszakítás folyamatban %d byte MediaFileInfo %d byte Error loading files MediaConverter Hiba történt a fájlok betöltése során diff --git a/data/catalogs/apps/mediaconverter/ja.catkeys b/data/catalogs/apps/mediaconverter/ja.catkeys index fc193d6b63..0a102cfb34 100644 --- a/data/catalogs/apps/mediaconverter/ja.catkeys +++ b/data/catalogs/apps/mediaconverter/ja.catkeys @@ -1,9 +1,11 @@ -1 japanese x-vnd.Haiku-MediaConverter 2955071341 +1 japanese x-vnd.Haiku-MediaConverter 2722282283 Video using parameters form settings MediaConverter 設定のパラメーターを使ったビデオ Video encoding: MediaConverter ビデオエンコーディング: +Error read audio frame %lld MediaConverter オーディオフレーム %lld の読み取り時にエラーが発生しました No audio Audio codecs list オーディオ無し Error MediaConverter エラー Error loading a file MediaConverter ファイルのロード中にエラーが発生しました +Error read video frame %lld MediaConverter ビデオフレーム %lld の読み取り時にエラーが発生しました File Error MediaConverter-FileInfo ファイルエラー Open… Menu 開く… Start [ms]: MediaConverter 開始 [ms]: @@ -22,6 +24,8 @@ Audio: MediaConverter-FileInfo オーディオ: OK MediaConverter-FileInfo OK seconds MediaFileInfo 秒 Source files MediaConverter ソースファイル +Error writing video frame %lld MediaConverter ビデオフレーム %lld の書き込み時にエラーが発生しました +Error writing audio frame %lld MediaConverter オーディオフレーム %lld の書き出し中にエラーが発生しました Cancelling MediaConverter キャンセル中 %d byte MediaFileInfo %d バイト Error loading files MediaConverter ファイルのロード中にエラーが発生しました diff --git a/data/catalogs/apps/mediaconverter/pt_BR.catkeys b/data/catalogs/apps/mediaconverter/pt_BR.catkeys index 61427ca84a..8439aa35b3 100644 --- a/data/catalogs/apps/mediaconverter/pt_BR.catkeys +++ b/data/catalogs/apps/mediaconverter/pt_BR.catkeys @@ -1,9 +1,11 @@ -1 portuguese (brazil) x-vnd.Haiku-MediaConverter 2955071341 +1 portuguese (brazil) x-vnd.Haiku-MediaConverter 2722282283 Video using parameters form settings MediaConverter Vídeo utilizando definições de forma de parâmetros Video encoding: MediaConverter Codificação de vídeo: +Error read audio frame %lld MediaConverter Erro ao ler quadro de áudio %lld No audio Audio codecs list Sem áudio Error MediaConverter Erro Error loading a file MediaConverter Erro ao carregar um arquivo +Error read video frame %lld MediaConverter Erro ao ler quadro de vídeo %lld File Error MediaConverter-FileInfo Erro no Arquivo Open… Menu Abrir… Start [ms]: MediaConverter Início [ms]: @@ -22,6 +24,8 @@ Audio: MediaConverter-FileInfo Áudio: OK MediaConverter-FileInfo OK seconds MediaFileInfo segundos Source files MediaConverter Arquivos fonte +Error writing video frame %lld MediaConverter Erro gravando quadro de vídeo %lld +Error writing audio frame %lld MediaConverter Erro gravando quadro de áudio %lld Cancelling MediaConverter Cancelando %d byte MediaFileInfo %d byte Error loading files MediaConverter Erro ao carregar arquivos diff --git a/data/catalogs/apps/people/fi.catkeys b/data/catalogs/apps/people/fi.catkeys index cae47d9cac..33f5740a56 100644 --- a/data/catalogs/apps/people/fi.catkeys +++ b/data/catalogs/apps/people/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Be-PEPL 3273435274 +1 finnish x-vnd.Be-PEPL 2332202134 Edit People Muokkaa Error People Virhe City People Kaupunki @@ -21,6 +21,7 @@ Nickname People Lempinimi Quit People Lopeta Name People Nimi Revert People Palauta +Don't save People Älä tallenna Undo People Peru E-mail People Sähköposti Load image… People Lataa kuva… @@ -30,6 +31,7 @@ Launching the FileTypes preflet to configure Person attributes has failed.\n\nEr Home phone People Kotipuhelin Save as… People Tallenna nimellä... Redo People Tee uudelleen +Save changes before closing? People Tallennetaanko muutokset ennen sulkemista? Paste People Liitä Drop an image here,\nor use the contextual menu. People Pudota kuva tänne, tai käytä\nasiayhteysvalikkoa. Save People Tallenna diff --git a/data/catalogs/apps/processcontroller/fi.catkeys b/data/catalogs/apps/processcontroller/fi.catkeys index 69081b28ba..6457d173c0 100644 --- a/data/catalogs/apps/processcontroller/fi.catkeys +++ b/data/catalogs/apps/processcontroller/fi.catkeys @@ -1,6 +1,6 @@ 1 finnish x-vnd.Haiku-ProcessController 2887520383 Memory usage ProcessController Muistikäyttö -Do you really want to kill the team \"%s\"? ProcessController Haluatko todella tappaa ryhmän ”%s”? +Do you really want to kill the team \"%s\"? ProcessController Haluatko todella lopettaa ryhmän ”%s”? Idle priority ProcessController Joutokäyntiprioriteetti Restart Deskbar ProcessController Käynnistä Työpöytäpalkki uudelleen Custom priority ProcessController Räätälöity prioriteetti @@ -42,7 +42,7 @@ Usage: %s [-deskbar]\n ProcessController Käyttö: %s [-deskbar]\n ProcessController System name Prosessiohjain Real-time display priority ProcessController Ajantasanäyttöprioriteetti Please confirm ProcessController Vahvista -Yes, kill this team! ProcessController Kyllä, tapa tämä ryhmä! +Yes, kill this team! ProcessController Kyllä, lopeta tämä ryhmä! System resources & caches… ProcessController Järjestelmäresurssit ja välimuistit… That's no Fun! ProcessController Se ei ole hauskaa! You can run ProcessController in a window or install it in the Deskbar. ProcessController Voit suorittaa Prosessiohjaimen ikkunassa tai asentaa sen Työpöytäpalkkiin. diff --git a/data/catalogs/apps/stylededit/fi.catkeys b/data/catalogs/apps/stylededit/fi.catkeys index 8e06eb729f..02173f729a 100644 --- a/data/catalogs/apps/stylededit/fi.catkeys +++ b/data/catalogs/apps/stylededit/fi.catkeys @@ -1,5 +1,6 @@ -1 finnish x-vnd.Haiku-StyledEdit 2574742746 +1 finnish x-vnd.Haiku-StyledEdit 3208803155 StyledEdit System name Tyylitetty editori +This file is marked read-only. Save changes to the document \"%s\"? SaveAlert Tämä tiedosto on merkitty kirjoitussuojatuksi. Tallennetaanko muutokset asiakirjaan \”%s\”? Paste Menus Liitä OK LoadAlert Valmis File Menus Tiedosto diff --git a/data/catalogs/kits/tracker/de.catkeys b/data/catalogs/kits/tracker/de.catkeys index 0b3b973988..6f5cb725f5 100644 --- a/data/catalogs/kits/tracker/de.catkeys +++ b/data/catalogs/kits/tracker/de.catkeys @@ -1,4 +1,4 @@ -1 german x-vnd.Haiku-libtracker 3779634732 +1 german x-vnd.Haiku-libtracker 2580969822 common B_COMMON_DIRECTORY Allgemein OK WidgetAttributeText OK Icon view VolumeWindow Icon-Ansicht @@ -81,6 +81,7 @@ Decrease size DeskWindow Verkleinern Size ContainerWindow Größe All disks AutoMounterSettings Alle Datenträger Would you like to find some other suitable application? FSUtils Soll eine andere passende Anwendung gesucht werden? +Ask before deleting for good SettingsView Vor dem endgültigen Löschen nachfragen Finish: %time - %finishtime left StatusWindow Fertig: %time - Noch %finishtime Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils \"%document\" konnte nicht mit der Anwendung \"%app\" geöffnet werden (fehlende Bibliothek: %library.). \n no items CountView keine @@ -101,6 +102,7 @@ New folder FilePanelPriv Neuer Ordner %name info InfoWindow InfoWindow Title %name Info Favorites FavoritesMenu Favoriten Add-ons VolumeWindow Add-ons +Move deleted files to Trash first SettingsView Gelöschte Dateien erst in den Papierkorb verschieben Sorry, you can't copy items to the Trash. PoseView Objekte können leider nicht in den Papierkorb kopiert werden. List view VolumeWindow Listenansicht matches wildcard expression SelectionWindow entspricht Platzhalter-Ausdruck diff --git a/data/catalogs/kits/tracker/fi.catkeys b/data/catalogs/kits/tracker/fi.catkeys index aaf60b9047..14ea13cba5 100644 --- a/data/catalogs/kits/tracker/fi.catkeys +++ b/data/catalogs/kits/tracker/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-libtracker 3779634732 +1 finnish x-vnd.Haiku-libtracker 2580969822 common B_COMMON_DIRECTORY yhteinen OK WidgetAttributeText Valmis Icon view VolumeWindow Kuvakenäkymä @@ -22,7 +22,7 @@ Recent documents FavoritesMenu Äskettäiset asiakirjat Modified QueryPoseView Muokattu Created ContainerWindow Luotu Error %error loading add-On %name. ContainerWindow Virhe %error ladattaessa lisäosaa %name. -If you %ifYouDoAction the settings folder, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Jos %ifYouDoAction asetuskansion, %osName ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän? +If you %ifYouDoAction the settings folder, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Jos kohdistat toiminnon ”%ifYouDoAction” asetuskansioon, ”%osName” ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän? contains SelectionWindow sisältää Sorry, you can't save things at the root of your system. FilePanelPriv Et voi tallentaa asioita järjestelmäsi root-kansioon. Show shared volumes on Desktop SettingsView Näytä jaetut taltiot työpöydällä @@ -81,8 +81,9 @@ Decrease size DeskWindow Pienennä kokoa Size ContainerWindow Koko All disks AutoMounterSettings Kaikki levyt Would you like to find some other suitable application? FSUtils Haluaisitko etsiä jonkun toisen sopivan sovelluksen? +Ask before deleting for good SettingsView Kysy ennen kuin poistetaan pysyvästi Finish: %time - %finishtime left StatusWindow Loppuu: %time - %finishtime jäljellä -Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils Ei voitu avata asiakirjaa ”%document” sovelluksella ”%app” (Puuttuvat kirjastot: %library). \n +Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils Asiakirjan ”%document” avaus sovelluksella ”%app” epäonnistui (Puuttuvat kirjastot: %library). \n no items CountView ei kohteita Ignore case SelectionWindow Ohita kirjainkoko is not FindPanel ei ole @@ -93,7 +94,7 @@ Cut FilePanelPriv Leikkaa Replace FilePanelPriv Korvaa Select all VolumeWindow Valitse kaikki Opens with: InfoWindow Avautuu sovelluksella: -If you %ifYouDoAction the mime settings, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Jos %ifYouDoAction mime-asetukset, %osName ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän? +If you %ifYouDoAction the mime settings, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Jos kohdistat toiminnon ”%ifYouDoAction” mime-asetuksiin, ”%osName” ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän? Open ContainerWindow Avaa 96 x 96 DeskWindow 96 x 96 Error calculating folder size. InfoWindow Virhe laskettaessa kansiokokoa. @@ -101,6 +102,7 @@ New folder FilePanelPriv Uusi kansio %name info InfoWindow InfoWindow Title %name-tiedot Favorites FavoritesMenu Suosikit Add-ons VolumeWindow Lisäosat +Move deleted files to Trash first SettingsView Siirrä poistetut tiedostot ensin Roskakoriin Sorry, you can't copy items to the Trash. PoseView Et voi kopioida kohteita roskakoriin. List view VolumeWindow Luettelonäkymä matches wildcard expression SelectionWindow täsmää jokerilausekkeeseen @@ -123,7 +125,7 @@ Move to Trash ContainerWindow Siirrä roskakoriin Move to ContainerWindow Siirrä kohteeseen Create %s clipping PoseView Luo %s leikkausta Set new link target InfoWindow Aseta uusi linkityskohde -If you %ifYouDoAction the system folder or its contents, you won't be able to boot %osName!\n\nAre you sure you want to do this?\n\nTo %toDoAction the system folder or its contents anyway, hold down the Shift key and click \"%toConfirmAction\". FSUtils Jos %ifYouDoAction järjestelmäkansion tai sen sisällön, et kykene alkulataamaan %osName!\n\nOletko varma, että haluat tehdä tämän?\n\nJärjestelmäkansion tai sen sisällön %toDoAction:ksi, pidä alhaalla Vaihto-painike ja napsauta \"%toConfirmAction\". +If you %ifYouDoAction the system folder or its contents, you won't be able to boot %osName!\n\nAre you sure you want to do this?\n\nTo %toDoAction the system folder or its contents anyway, hold down the Shift key and click \"%toConfirmAction\". FSUtils Jos kohdistat toiminnon ”%ifYouDoAction” järjestelmäkansioon tai sen sisältöön, et kykene alkulataamaan käyttöjärjestelmää %osName!\n\nOletko varma, että haluat tehdä tämän?\n\nToiminnon ”%toDoAction” kohdistamiseksi järjestelmäkansioon tai sen sisältöön pidä alhaalla Vaihto-painike ja napsauta \"%toConfirmAction\". Save as Query template: FindPanel Tallenna kyselymallinteena preferences B_PREFERENCES_DIRECTORY asetukset Cancel FSUtils Peru @@ -137,17 +139,17 @@ Defaults TrackerSettingsWindow Oletukset Mini icon view ContainerWindow Minikuvakenäkymä Clean up VolumeWindow Tyhjennä OK TrackerInitialState Valmis -Could not open \"%name\". The file is mistakenly marked as executable. FSUtils Ei voitu avata kohdetta ”%name”. Tiedosto on virheellisesti merkitty suoritettavaksi tiedostoksi. +Could not open \"%name\". The file is mistakenly marked as executable. FSUtils Kohteen ”%name” avaus epäonnistui. Tiedosto on virheellisesti merkitty suoritettavaksi tiedostoksi. Add-ons ContainerWindow Lisäosat Edit templates… TemplatesMenu Muokkaa mallinteita... Finish: %time - Over %finishtime left StatusWindow Loppuu: %time - Yli %finistime jäljellä An item named \"%name\" already exists in this folder. Would you like to replace it with the symbolic link you are creating? FSUtils Kohde nimeltä ”%name” on jo olemassa tässä kansiossa. Haluaisitko korvata sen symbolisella linkillä, jota olet luomassa? Sorry, there is not enough free space on the destination volume to copy the selection. FSUtils Kohdetaltiolla ei ole tarpeeksi tilaa valinnan kopioimiseksi. -Could not open \"%document\" with application \"%app\" (%error). FSUtils Ei voitu avata asiakirjaa ”%document” sovelluksella ”%app” (%error). +Could not open \"%document\" with application \"%app\" (%error). FSUtils Asiakirjan ”%document” avaaminen sovelluksella ”%app” epäonnistui (%error). Sorry, saving more than one item is not allowed. FilePanelPriv Useamman kuin yhden kohteen tallentaminen ei ole sallittua. Searching for disks to mount… StatusWindow Etsitään liitettäviä levyjä... New folder FSUtils Uusi kansio -If you %ifYouDoAction the common folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo %toDoAction the common folder anyway, hold down the Shift key and click \"%toConfirmAction\". FSUtils Jos %ifYouDoAction yleiselle kansiolle, %osName ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän?\n\nYleisen kansion %toDoAction :ksi, pidä alhaalla Vaihto-painike ja napsauta \"%toConfirmAction\". +If you %ifYouDoAction the common folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo %toDoAction the common folder anyway, hold down the Shift key and click \"%toConfirmAction\". FSUtils Jos kohdistat toiminnon ”%ifYouDoAction” yleiseen kansioon, ”%osName” ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän?\n\nToiminnon ”%toDoAction” kohdistamiseksi yleiseen kansioon pidä alhaalla Vaihto-painike ja napsauta \"%toConfirmAction\". Free space color SettingsView Vapaan tilan väri Cut ContainerWindow Leikkaa Remove FindPanel Poista @@ -238,7 +240,7 @@ Default application InfoWindow Oletussovellus Preparing to copy items… StatusWindow Valmistaudutaan kopioimaan kohteita... Show folder location in title tab SettingsView Näytä kansion sijainti otsikkovälilehdessä Proceed FSUtils Jatketaan -Some items already exist in this folder with the same names as the items you are %verb.\n \nWould you like to replace them with the ones you are %verb or be prompted for each one? FSUtils Tässä kansiossa on jo joitakin kohteita, joilla on samat nimet kuin kohteilla, joille haluat suorittaa toiminnon %verb.\n \nHaluaisitko korvata ne niillä kohteilla, jotka joille haluat suoritaa toiminnon %verb vai haluatko kysymyskehotteen jokaiselle? +Some items already exist in this folder with the same names as the items you are %verb.\n \nWould you like to replace them with the ones you are %verb or be prompted for each one? FSUtils Tässä kansiossa on jo joitakin kohteita, joilla on samat nimet kuin kohteilla, joille haluat suorittaa toiminnon ”%verb”.\n \nHaluaisitko korvata ne niillä kohteilla, jotka joille haluat suorittaa toiminnon ”%verb” vai haluatko kysymyskehotteen jokaiselle? The mount server could not be contacted. AutoMounterSettings Liittämispalvelimeen ei saatu yhteyttä. Error deleting items FSUtils Virhe poistettaessa kohteita Create relative link here ContainerWindow Luo suhteellinen linkki tähän @@ -246,7 +248,7 @@ trash B_TRASH_DIRECTORY roskakori matches regular expression SelectionWindow täsmää säännöllisen lausekkeen kanssa Mount settings… SettingsView Liittämisasetukset... Edit name InfoWindow Muokkaa nimeä -Could not open \"%name\" (%error). FSUtils Ei voitu avata kohdetta ”%name” (%error) +Could not open \"%name\" (%error). FSUtils Kohteen ”%name” avaus epäonnistui (%error) Paste ContainerWindow Liitä optional /boot/optional valinnainen Modified: InfoWindow Muokattu: @@ -257,7 +259,7 @@ The file \"%name\" already exists in the specified folder. Do you want to replac Cancel ContainerWindow Peru Only the boot disk AutoMounterSettings Vain alkulatauslevy Trash TrackerSettingsWindow Roskakori -If you %ifYouDoAction the config folder, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Jos %ifYouDoAction asetuskansion, %osName ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän? +If you %ifYouDoAction the config folder, %osName may not behave properly!\n\nAre you sure you want to do this? FSUtils Jos kohdistat toiminnon ”%ifYouDoAction” asetuskansioon, ”%osName” ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän? Unmount ContainerWindow Irrota Copy layout ContainerWindow Kopioi sijoittelu label too long PoseView nimike on liian pitkä @@ -270,7 +272,7 @@ Reverse order ContainerWindow Käännä järjestys 48 x 48 DeskWindow 48 x 48 OK OpenWithWindow Valmis Add current folder FilePanelPriv Lisää nykyinen kansio -Could not open \"%document\" with application \"%app\" (Missing symbol: %symbol). \n FSUtils Ei voitu avata asiakirjaa ”%document” sovelluksella ”%app” (Puuttuva symboli: %symbol). \n +Could not open \"%document\" with application \"%app\" (Missing symbol: %symbol). \n FSUtils Asiakirjan ”%document” avaus sovelluksella ”%app” epäonnistui (Puuttuva symboli: %symbol). \n The target disk does not support creating links. FSUtils Kohdelevy ei tue linkkien luomista. starts with SelectionWindow alkaa kohteella Preparing to delete items… StatusWindow Valmistaudutaan poistamaan kohteita... @@ -279,7 +281,7 @@ Would you like to find a suitable application to open the file? FSUtils Haluais There was an error writing the attribute. WidgetAttributeText Attribuutin kirjoittamisessa tapahtui virhe. Recalculate folder size InfoWindow Laske kansion koko uudelleen Unknown WidgetAttributeText Tuntematon -Could not open \"%document\" (Missing symbol: %symbol). \n FSUtils Ei voitu avata asiakirjaa ”%document” (Symboli puuttu: %symbol).\n +Could not open \"%document\" (Missing symbol: %symbol). \n FSUtils Asiakirjan ”%document” avaus epäonnistui (Symboli puuttu: %symbol).\n by name FindPanel nimittäin Creating links: StatusWindow Luodaan linkit: Rename TextWidget Button label, 'Rename' (en), 'Umbenennen' (de) Nimeä uudelleen @@ -313,7 +315,7 @@ Cancel PoseView Peru You can't move or copy items to read-only volumes. FSUtils Et voi siirtää tai kopioida kohteita kirjoitussuojatuille taltioille. Unknown FilePermissionsView Tuntematon All files and folders FindPanel Kaikki tiedostot ja kansiot -Could not open \"%document\" (Missing libraries: %library). \n FSUtils Ei voitu avata asiakirjaa ”%document” (Puuttuvat kirjastot: %library).\n +Could not open \"%document\" (Missing libraries: %library). \n FSUtils Asiakirjan ”%document” avaus epäonnistui (Puuttuvat kirjastot: %library).\n The Tracker must be running to see Info windows. PoseView Seuraajaohjelman on oltava käynnissä, jotta voit nähdä tietoikkunat. Other FilePermissionsView Muu Query name: FindPanel Kyselynimi: @@ -344,12 +346,12 @@ Handles any file OpenWithWindow Käsittelee kaikkia tiedostoja Get info FilePanelPriv Hae tiedot 32 x 32 DeskWindow 32 x 32 Cancel FilePanelPriv Peru -The application \"%appname\" does not support the type of document you are about to open.\nAre you sure you want to proceed?\n\nIf you know that the application supports the document type, you should contact the publisher of the application and ask them to update their application to list the type of your document as supported. OpenWithWindow Sovellus \"%appname\" asiakirjatyyppiä, jota olet avaamassa.\nOletko varma, että haluat edetä?\n\nJos tiedät, että sovellus tukee asiakirjatyyppiä, ota yhteys sovelluksen julkaisijaan ja pyydä heitä päivittämään sovellustaan luettelemaan oikein tuetut asiakirjatyypit. +The application \"%appname\" does not support the type of document you are about to open.\nAre you sure you want to proceed?\n\nIf you know that the application supports the document type, you should contact the publisher of the application and ask them to update their application to list the type of your document as supported. OpenWithWindow Sovellus \"%appname\" ei tue asiakirjatyyppiä, jota olet avaamassa.\nOletko varma, että haluat edetä?\n\nJos tiedät, että sovellus tukee asiakirjatyyppiä, ota yhteys sovelluksen julkaisijaan ja pyydä heitä päivittämään sovellustaan luettelemaan oikein tuetut asiakirjatyypit. Disks DirMenu Levyt New folder %ld FSUtils Uusi kansio %ld All BeOS disks AutoMounterSettings Kaikki BeOS-levyt Used space color SettingsView Käytetyn tilan väri -Sorry, could not create a new folder. FSUtils Ei voitu luoda uutta kansiota. +Sorry, could not create a new folder. FSUtils Uuden kansion luominen epäonnistui. multiple disks FindPanel useita levyjä Done AutoMounterSettings Valmis You must drop items on one of the disk icons in the \"Disks\" window. PoseView Sinun on pudotettava kohteet yhteen ”Levyt”-ikkunan levykuvakkeista. @@ -382,7 +384,7 @@ Preferences… ContainerWindow Asetukset… Move PoseView Siirrä Open and make preferred OpenWithWindow Avaa ja tee ensisijaiseksi Are you sure you want to delete the selected item(s)? This operation cannot be reverted. FSUtils Oletko varma, että haluat poistaa valitut kohteet? Tätä toimintoa ei voi palauttaa. -If you %ifYouDoAction the home folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo %toDoAction the home folder anyway, hold down the Shift key and click \"%toConfirmAction\". FSUtils Jos %ifYouDoAction kotihakemiston, %osName ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän?\n\nKotihakemiston %toDoAction :ksi, pidä alhaalla Vaihto-painike ja napsauta \"%toConfirmAction\". +If you %ifYouDoAction the home folder, %osName may not behave properly!\n\nAre you sure you want to do this?\n\nTo %toDoAction the home folder anyway, hold down the Shift key and click \"%toConfirmAction\". FSUtils Jos kohdistat toiminnon ”%ifYouDoAction” kotihakemistoon, ”%osName” ei ehkä toimi oikein!\n\nOletko varma, että haluat tehdä tämän?\n\nToiminnon ”%toDoAction” kohdistamiseksi kotihakemistoon pidä alhaalla Vaihto-painike ja napsauta \"%toConfirmAction\". Add-ons DeskWindow Lisäosat Name FindPanel Nimi And FindPanel Ja diff --git a/data/catalogs/kits/tracker/hu.catkeys b/data/catalogs/kits/tracker/hu.catkeys index e2628fa962..d306dba346 100644 --- a/data/catalogs/kits/tracker/hu.catkeys +++ b/data/catalogs/kits/tracker/hu.catkeys @@ -1,4 +1,4 @@ -1 hungarian x-vnd.Haiku-libtracker 3779634732 +1 hungarian x-vnd.Haiku-libtracker 2580969822 common B_COMMON_DIRECTORY Közös OK WidgetAttributeText Rendben Icon view VolumeWindow Ikon nézet @@ -81,6 +81,7 @@ Decrease size DeskWindow Méret csökkentése Size ContainerWindow Méret All disks AutoMounterSettings Összes lemez Would you like to find some other suitable application? FSUtils Szeretne keresni egy másik megfelelő programot? +Ask before deleting for good SettingsView Törlés előtt kérdezzen Finish: %time - %finishtime left StatusWindow Befejezés: %time - %finishtime maradt Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils Nem sikerült megnyitni a dokumentumot (%document) a programmal (%app).\n\tHiányzó funkciótár: %library. \n no items CountView nincs elem @@ -101,6 +102,7 @@ New folder FilePanelPriv Új mappa %name info InfoWindow InfoWindow Title %name Favorites FavoritesMenu Kedvencek Add-ons VolumeWindow Kiegészítők +Move deleted files to Trash first SettingsView A törölt fájlok először a Szemetesbe kerüljenek Sorry, you can't copy items to the Trash. PoseView Sajnáljuk, de nem lehet a Szemetesbe másolni. List view VolumeWindow Lista nézet matches wildcard expression SelectionWindow megfelel a helyettesítő kifejezésnek @@ -309,7 +311,7 @@ move FSUtils As in 'if you move this folder...' (en) 'Wird dieser Ordner verscho Show Disks icon SettingsView „Lemezek” ikon megjelenítése Mount VolumeWindow Csatolás Cancel PoseView Mégse -\n\t(%Ld bytes, FSUtils n\t(%Ld bájt, +\n\t(%Ld bytes, FSUtils \n\t(%Ld bájt, You can't move or copy items to read-only volumes. FSUtils Írásvédett lemezre nem lehet mozgatni vagy átmásolni elemeket. Unknown FilePermissionsView Ismeretlen All files and folders FindPanel Minden fájl és mappa diff --git a/data/catalogs/kits/tracker/ja.catkeys b/data/catalogs/kits/tracker/ja.catkeys index c0f8a20d3e..4b18ae2861 100644 --- a/data/catalogs/kits/tracker/ja.catkeys +++ b/data/catalogs/kits/tracker/ja.catkeys @@ -1,4 +1,4 @@ -1 japanese x-vnd.Haiku-libtracker 4159278285 +1 japanese x-vnd.Haiku-libtracker 2960613375 OK WidgetAttributeText OK Icon view VolumeWindow アイコン表示 Add-ons FilePanelPriv アドオン @@ -78,6 +78,7 @@ Decrease size DeskWindow サイズを小さく Size ContainerWindow サイズ All disks AutoMounterSettings 全パーティション Would you like to find some other suitable application? FSUtils 他に適切なアプリケーションを検索しますか? +Ask before deleting for good SettingsView 完全に削除する前に尋ねる Finish: %time - %finishtime left StatusWindow 終了: %time - 残り %finishtime Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils %libraryライブラリーがインストールされてないため、\"%app\" を使って \"%document\" を開くことはできませんでした。 no items CountView 0 項目 @@ -98,6 +99,7 @@ New folder FilePanelPriv 新規フォルダー %name info InfoWindow InfoWindow Title %name の情報 Favorites FavoritesMenu お気に入り Add-ons VolumeWindow アドオン +Move deleted files to Trash first SettingsView 削除されたファイルを最初にごみ箱に移動する Sorry, you can't copy items to the Trash. PoseView ごみ箱にコピーすることはできません。 List view VolumeWindow 一覧表示 matches wildcard expression SelectionWindow ワイルドカード表現と一致 diff --git a/data/catalogs/kits/tracker/pt_BR.catkeys b/data/catalogs/kits/tracker/pt_BR.catkeys index 1b0034f463..a1a0c88aaa 100644 --- a/data/catalogs/kits/tracker/pt_BR.catkeys +++ b/data/catalogs/kits/tracker/pt_BR.catkeys @@ -1,4 +1,4 @@ -1 portuguese (brazil) x-vnd.Haiku-libtracker 3779634732 +1 portuguese (brazil) x-vnd.Haiku-libtracker 2580969822 common B_COMMON_DIRECTORY comum OK WidgetAttributeText OK Icon view VolumeWindow Em ícones @@ -81,6 +81,7 @@ Decrease size DeskWindow Diminuir tamanho Size ContainerWindow Tamanho All disks AutoMounterSettings Todos os discos Would you like to find some other suitable application? FSUtils Você gostaria de encontrar outro aplicativo que possa servir? +Ask before deleting for good SettingsView Perguntar antes de eliminar para sempre Finish: %time - %finishtime left StatusWindow Término: %time - %finishtime restante Could not open \"%document\" with application \"%app\" (Missing libraries: %library). \n FSUtils Não foi possível abrir \"%document\" com o aplicativo \"%app\" (Bibliotecas faltantes: %library). \n no items CountView sem itens @@ -101,6 +102,7 @@ New folder FilePanelPriv Nova pasta %name info InfoWindow InfoWindow Title Informações de %name Favorites FavoritesMenu Favoritos Add-ons VolumeWindow Adicionais +Move deleted files to Trash first SettingsView Mover arquivos eliminados para a Lixeira primeiro Sorry, you can't copy items to the Trash. PoseView Desculpe, você não pode copiar itens para a Lixeira. List view VolumeWindow Em lista matches wildcard expression SelectionWindow encaixa na expressão coringa diff --git a/data/catalogs/preferences/appearance/fi.catkeys b/data/catalogs/preferences/appearance/fi.catkeys index ccd3e6232b..228500a08e 100644 --- a/data/catalogs/preferences/appearance/fi.catkeys +++ b/data/catalogs/preferences/appearance/fi.catkeys @@ -12,13 +12,13 @@ About DecorSettingsView Ohjelmasta Off AntialiasingSettingsView Pois päältä Choose Decorator DecorSettingsView Valitse koristelu Success Colors tab Onnistuminen -Inactive window tab text Colors tab Epäaktiivisen ikkunakahvan tekstin väri +Inactive window tab text Colors tab Epäaktiivisen ikkunavälilehden tekstin väri About Decorator DecorSettingsView Koristeluohjelmasta Failure Colors tab Epäonnistuminen Hinting menu AntialiasingSettingsView Vinkkausvalikko Document background Colors tab Dokumentin tausta Revert APRWindow Palauta -Window tab Colors tab Ikkunakahva +Window tab Colors tab Ikkunan välilehti Tooltip background Colors tab Työkaluvinkin tausta Selected menu item background Colors tab Valitun valikkovalinnan tausta Antialiasing APRWindow Reunanpehmennys @@ -26,7 +26,7 @@ Navigation base Colors tab Navigoinnin pohja Selected list item text Colors tab Valitun luettelorivin teksti Window border Colors tab Ikkunaraja Double: DecorSettingsView Kaksikko: -Window tab text Colors tab Ikkunakahvan teksti +Window tab text Colors tab Ikkunavälilehden teksti Document text Colors tab Dokumentin teksti Navigation pulse Colors tab Navigoinnin välke Window decorator: DecorSettingsView Ikkunan kehystäjä: @@ -41,7 +41,7 @@ Panel background Colors tab Paneelin tausta Menu font: Font view Valikkokirjasin: Colors APRWindow Värit Control background Colors tab Kontrollin tausta -Inactive window tab Colors tab Epäaktiivisen ikkunakahvan väri +Inactive window tab Colors tab Epäaktiivisen ikkunavälilehden väri List item text Colors tab Luettelorivin teksti Appearance System name Ulkoasuasetukset Fixed font: Font view Tasalevyinen kirjasin: diff --git a/data/catalogs/preferences/filetypes/fi.catkeys b/data/catalogs/preferences/filetypes/fi.catkeys index 76c56037dc..986cccfcae 100644 --- a/data/catalogs/preferences/filetypes/fi.catkeys +++ b/data/catalogs/preferences/filetypes/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-FileTypes 1059171929 +1 finnish x-vnd.Haiku-FileTypes 133192727 Application types… FileTypes Window Sovellustyypit… Description: Application Types Window Kuvaus: Args only Application Type Window Vain argumentit @@ -49,6 +49,8 @@ Group name: New File Type Window Ryhmänimi: Preferred application FileType Window Ensisijainen sovellus Progress Application Types Window Edistyminen Set preferred application Preferred App Menu Aseta ensisijainen sovellus +Don't save Application Type Window Älä tallenna +Save changes before closing? Application Type Window Tallennetaanko muutokset ennen sulkemista? File Application Type Window Tiedosto Version: Application Type Window Versio: Select… FileTypes Window Valitse… diff --git a/data/catalogs/preferences/shortcuts/fi.catkeys b/data/catalogs/preferences/shortcuts/fi.catkeys index 5ad0edb974..1beae11c36 100644 --- a/data/catalogs/preferences/shortcuts/fi.catkeys +++ b/data/catalogs/preferences/shortcuts/fi.catkeys @@ -1,4 +1,4 @@ -1 finnish x-vnd.Haiku-Shortcuts 1741147146 +1 finnish x-vnd.Haiku-Shortcuts 3661393357 Error, NULL state description?\n ShortcutsSpec Virhe, NULL-tilakuvaus?\n MoveMouse ShortcutsSpec SiirräHiirtä OK ShortcutsWindow Valmis @@ -25,6 +25,7 @@ Save ShortcutsWindow Tallenna *MouseButton 1 ShortcutsWindow *Hiiripainike 1 *MoveMouse +20 +0 ShortcutsWindow *SiirräHiiri +20 +0 MouseDown ShortcutsSpec HiiriAlas +Save changes before closing? ShortcutsWindow Tallennetaanko muutokset ennen sulkemista? Remove selected shortcut ShortcutsWindow Poista valittu pikanäppäin MouseButton ShortcutsSpec HiiriPainike Add new shortcut ShortcutsWindow Lisää uusi pikanäppäin diff --git a/data/catalogs/preferences/virtualmemory/de.catkeys b/data/catalogs/preferences/virtualmemory/de.catkeys index a3904d3f8c..9adb32185b 100644 --- a/data/catalogs/preferences/virtualmemory/de.catkeys +++ b/data/catalogs/preferences/virtualmemory/de.catkeys @@ -1,5 +1,6 @@ -1 german x-vnd.Haiku-VirtualMemory 4238590117 +1 german x-vnd.Haiku-VirtualMemory 2090796060 Quit SettingsWindow Beenden +Automatic swap management SettingsWindow Automatische Speicherverwaltung Turn off SettingsWindow Ausschalten Disabling virtual memory will have unwanted effects on system stability once the memory is used up.\nVirtual memory does not affect system performance until this point is reached.\n\nAre you really sure you want to turn it off? SettingsWindow Wird der virtuelle Speicher ausgeschaltet, kann es zu unerwünschten Effekten und Einschränkungen der Systemstabilität kommen, sobald der physische Speicher nahezu aufgebraucht ist.\nVirtueller Speicher hat keine Auswirkungen auf die Systemleistung, bis dieser Punkt erreicht ist.\n\nSoll er trotzdem ausgeschaltet werden? Requested swap file size: SettingsWindow Gewünschte Größe: diff --git a/data/catalogs/preferences/virtualmemory/fi.catkeys b/data/catalogs/preferences/virtualmemory/fi.catkeys index d41f42ee43..4e6babf0e6 100644 --- a/data/catalogs/preferences/virtualmemory/fi.catkeys +++ b/data/catalogs/preferences/virtualmemory/fi.catkeys @@ -1,5 +1,6 @@ -1 finnish x-vnd.Haiku-VirtualMemory 4238590117 +1 finnish x-vnd.Haiku-VirtualMemory 2090796060 Quit SettingsWindow Lopeta +Automatic swap management SettingsWindow Automaattinen näennäismuistihallinta Turn off SettingsWindow Käännä pois päältä Disabling virtual memory will have unwanted effects on system stability once the memory is used up.\nVirtual memory does not affect system performance until this point is reached.\n\nAre you really sure you want to turn it off? SettingsWindow Virtuaalimuistin ottamisella pois käytöstä on odottamattomia vaikutuksia järjestelmän stabiilisuuteen silloin kun muisti on kerran käytetty loppuun.\nVirtuaalimuisti ei vaikuta järjestelmän suorituskykyyn jos tätä pistettä ei ole saavutettu.\n\nOletko todella varma, että haluat ottaa sen pois päältä? Requested swap file size: SettingsWindow Pyydetty virtuaalimuistitiedoston koko: diff --git a/data/catalogs/preferences/virtualmemory/hu.catkeys b/data/catalogs/preferences/virtualmemory/hu.catkeys index fc598fed7e..31ee591504 100644 --- a/data/catalogs/preferences/virtualmemory/hu.catkeys +++ b/data/catalogs/preferences/virtualmemory/hu.catkeys @@ -1,5 +1,6 @@ -1 hungarian x-vnd.Haiku-VirtualMemory 4238590117 +1 hungarian x-vnd.Haiku-VirtualMemory 2090796060 Quit SettingsWindow Kilépés +Automatic swap management SettingsWindow Automatikus memória-kezelés Turn off SettingsWindow Kikapcsol Disabling virtual memory will have unwanted effects on system stability once the memory is used up.\nVirtual memory does not affect system performance until this point is reached.\n\nAre you really sure you want to turn it off? SettingsWindow A virtuális memória kikapcsolása egyes esetekkor nem kívánt hatással lehet a rendszer stabilitására.\nAmíg a rendszermemória el nem fogy, addig a virtuális memória használatára nincs szükség.\n\nBiztosan ki szeretné kapcsolni ezt a funkciót? Requested swap file size: SettingsWindow Az igényelt fájl mérete: diff --git a/data/catalogs/preferences/virtualmemory/ja.catkeys b/data/catalogs/preferences/virtualmemory/ja.catkeys index 1da2bcb06a..539d16b2ad 100644 --- a/data/catalogs/preferences/virtualmemory/ja.catkeys +++ b/data/catalogs/preferences/virtualmemory/ja.catkeys @@ -1,5 +1,6 @@ -1 japanese x-vnd.Haiku-VirtualMemory 4238590117 +1 japanese x-vnd.Haiku-VirtualMemory 2090796060 Quit SettingsWindow 終了 +Automatic swap management SettingsWindow 自動仮想メモリ管理 Turn off SettingsWindow 無効にする Disabling virtual memory will have unwanted effects on system stability once the memory is used up.\nVirtual memory does not affect system performance until this point is reached.\n\nAre you really sure you want to turn it off? SettingsWindow 仮想メモリを無効にすると、使用可能な物理メモリが少なくなったときにシステムが不安定になることもあります。\n物理メモリが少なくなるまでは仮想メモリがシステムパフォーマンスに影響を与えることはありません。\n\n仮想メモリを本当に無効にしますか? Requested swap file size: SettingsWindow 指定されたスワップサイズ: diff --git a/data/catalogs/preferences/virtualmemory/pt_BR.catkeys b/data/catalogs/preferences/virtualmemory/pt_BR.catkeys index f229959161..9bd423e2df 100644 --- a/data/catalogs/preferences/virtualmemory/pt_BR.catkeys +++ b/data/catalogs/preferences/virtualmemory/pt_BR.catkeys @@ -1,5 +1,6 @@ -1 portuguese (brazil) x-vnd.Haiku-VirtualMemory 4238590117 +1 portuguese (brazil) x-vnd.Haiku-VirtualMemory 2090796060 Quit SettingsWindow Sair +Automatic swap management SettingsWindow Gerenciamento automático de limpeza Turn off SettingsWindow Desligar Disabling virtual memory will have unwanted effects on system stability once the memory is used up.\nVirtual memory does not affect system performance until this point is reached.\n\nAre you really sure you want to turn it off? SettingsWindow Desabilitar a memória virtual irá trazer efeitos indesejados na estabilidade do sistema assim que a memória estiver cheia.\nA memória virtual não irá afetar a performance do sistema até que isso aconteça.\n\nTem certeza que deseja desligá-la? Requested swap file size: SettingsWindow Tamanho necessário do arquivo de troca: diff --git a/data/catalogs/tests/servers/app/playground/de.catkeys b/data/catalogs/tests/servers/app/playground/de.catkeys new file mode 100644 index 0000000000..588351b7e2 --- /dev/null +++ b/data/catalogs/tests/servers/app/playground/de.catkeys @@ -0,0 +1,21 @@ +1 german application/x-vnd.Haiku-Playground 3841053224 +Line Playground Linie +Fill Playground Füllen +Quit Playground Beenden +Rect Playground Rechteck +Click and drag to draw an object Playground Klicken und ziehen, um Objekte zu zeichnen +Controls Playground Steuerung +Round rect Playground Abgerundetes Rechteck +Alpha: Playground Alpha: +Mode: Playground Modus: +Submenu Playground Untermenü +Cancel Playground Abbrechen +Clear Playground Löschen +Clear all drawing objects? Playground Alle Objekte löschen? +Width: Playground Strichstärke: +New object Playground Neues Objekt +Test Playground Test +Playground System name Spielwiese +File Playground Datei + Playground +Ellipse Playground Ellipse diff --git a/data/catalogs/tests/servers/app/playground/fi.catkeys b/data/catalogs/tests/servers/app/playground/fi.catkeys new file mode 100644 index 0000000000..78a864c992 --- /dev/null +++ b/data/catalogs/tests/servers/app/playground/fi.catkeys @@ -0,0 +1,32 @@ +1 finnish application/x-vnd.Haiku-Playground 1375574837 +Line Playground Rivi +Fill Playground Täytä +Over Playground Ylitä +Quit Playground Poistu +Rect Playground Nelikulmio +Select Playground Valitse +Click and drag to draw an object Playground Napsauta ja raahaa objektin piirtämiseksi +Controls Playground Ohjaimet +Round rect Playground Pyöreäkulmainen nelikulmio +Alpha: Playground Alfa: +Mode: Playground Tila: +Submenu Playground Alivalikko +Copy Playground Kopioi +Cancel Playground Peru +Clear Playground Tyhjennä +Min Playground Minimi +Blend Playground Sekoita +Invert Playground Käänteinen +Clear all drawing objects? Playground Poista kaikki piirrosobjektit? +Width: Playground Leveys: +Alpha Playground Alfa +New object Playground Uusi objekti +Test Playground Testi +Max Playground Maksimi +Add Playground Lisää +Playground System name Pelikenttä +Erase Playground Poista +File Playground Tiedosto +Subtract Playground Vähennä + Playground +Ellipse Playground Ellipsi diff --git a/data/catalogs/tests/servers/app/playground/hu.catkeys b/data/catalogs/tests/servers/app/playground/hu.catkeys new file mode 100644 index 0000000000..91ecacb462 --- /dev/null +++ b/data/catalogs/tests/servers/app/playground/hu.catkeys @@ -0,0 +1,32 @@ +1 hungarian application/x-vnd.Haiku-Playground 1375574837 +Line Playground Vonal +Fill Playground Kitöltés +Over Playground Felül +Quit Playground Bezárás +Rect Playground Téglalap +Select Playground Kiválaszt +Click and drag to draw an object Playground Húzzon ide egy objektumot a rajzoláshoz +Controls Playground Vezérlők +Round rect Playground Lekerekített téglalap +Alpha: Playground Alfa: +Mode: Playground Mód: +Submenu Playground Almenü +Copy Playground Másol +Cancel Playground Mégse +Clear Playground Törlés +Min Playground Minimum +Blend Playground Kever +Invert Playground Megfordít +Clear all drawing objects? Playground Minden objektumot töröljek? +Width: Playground Szélesség: +Alpha Playground Alfa +New object Playground Új objektum +Test Playground Próba +Max Playground Maximum +Add Playground Hozzáad +Playground System name Játszótér +Erase Playground Töröl +File Playground Fájl +Subtract Playground Kivon + Playground +Ellipse Playground Ellipszis diff --git a/data/catalogs/tests/servers/app/playground/ja.catkeys b/data/catalogs/tests/servers/app/playground/ja.catkeys new file mode 100644 index 0000000000..2acb379768 --- /dev/null +++ b/data/catalogs/tests/servers/app/playground/ja.catkeys @@ -0,0 +1,26 @@ +1 japanese application/x-vnd.Haiku-Playground 2051069653 +Line Playground 直線 +Fill Playground 塗りつぶし +Quit Playground 終了 +Rect Playground 矩形 +Select Playground 選択 +Click and drag to draw an object Playground クリック&ドラッグでオブジェクトを描いてください +Controls Playground コントロール +Round rect Playground 角丸四角形 +Alpha: Playground 透明度: +Mode: Playground モード: +Submenu Playground サブメニュー +Copy Playground コピー +Cancel Playground キャンセル +Clear Playground 消去 +Blend Playground ブレンド +Invert Playground 反転 +Clear all drawing objects? Playground すべてのオブジェクトを削除しても良いですか? +Width: Playground 幅: +Alpha Playground 透明度 +New object Playground 新規オブジェクト +Test Playground テスト +Playground System name プレイグラウンド +Erase Playground 削除 +File Playground ファイル +Ellipse Playground 楕円 diff --git a/data/catalogs/tests/servers/app/playground/pt_BR.catkeys b/data/catalogs/tests/servers/app/playground/pt_BR.catkeys new file mode 100644 index 0000000000..6c901387b3 --- /dev/null +++ b/data/catalogs/tests/servers/app/playground/pt_BR.catkeys @@ -0,0 +1,32 @@ +1 portuguese (brazil) application/x-vnd.Haiku-Playground 1375574837 +Line Playground Linha +Fill Playground Preencher +Over Playground Sobre +Quit Playground Sair +Rect Playground Retângulo +Select Playground Selecionar +Click and drag to draw an object Playground Clique e arraste para desenhar um objeto +Controls Playground Controles +Round rect Playground Retângulo de cantos arredondados +Alpha: Playground Alfa: +Mode: Playground Modo: +Submenu Playground Submenu +Copy Playground Copiar +Cancel Playground Cancelar +Clear Playground Limpar +Min Playground Mínimo +Blend Playground Fundir +Invert Playground Inverter +Clear all drawing objects? Playground Limpar todos os objetos desenhados? +Width: Playground Largura: +Alpha Playground Alfa +New object Playground Novo objeto +Test Playground Teste +Max Playground Máximo +Add Playground Adicionar +Playground System name Playground +Erase Playground Apagar +File Playground Arquivo +Subtract Playground Subtrair + Playground +Ellipse Playground Elipse diff --git a/docs/user/Doxyfile b/docs/user/Doxyfile index b7791ede72..43e0c1f2ce 100644 --- a/docs/user/Doxyfile +++ b/docs/user/Doxyfile @@ -641,6 +641,7 @@ INPUT = . \ midi2 \ storage \ support \ + translation \ ../../headers/os/app \ ../../headers/os/drivers/fs_interface.h \ ../../headers/os/drivers/USB3.h \ @@ -652,6 +653,7 @@ INPUT = . \ ../../headers/os/midi2 \ ../../headers/os/storage \ ../../headers/os/support \ + ../../headers/os/translation \ ../../headers/posix/syslog.h \ ../../src/kits/game/GameProducer.h diff --git a/docs/user/book.css b/docs/user/book.css index e5d0fc4e3d..41cff2d11a 100644 --- a/docs/user/book.css +++ b/docs/user/book.css @@ -26,13 +26,14 @@ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea, body { color: #333333; /* mine shaft */ background-color: white; + font-size: 14.4px; font-family: "DejaVu Sans", Arial, sans-serif; } h1, h2, h3, h4, h5, h6 { color: #0c3762; /* madison */ - margin-top: 0.5em; - margin-bottom: 0.5em; + margin-top: 1em; + margin-bottom: 1em; } h1 { @@ -64,7 +65,6 @@ h5, h6 { } p { - font-size: 14.4px; margin-top: 0.5em; margin-bottom: 0.5em; } @@ -78,7 +78,6 @@ td, th { vertical-align: top; text-align: left; padding: 4px; - font-size: 14.4px; } caption { @@ -165,16 +164,16 @@ div.summary { } div.headertitle { - margin: 0 auto; width: 59em; } div.headertitle div.title { color: #0c3762; /* madison */ - font-size: 1.2em; + font-size: 1.3em; font-weight: bold; - margin-top: 0.5em; - margin-bottom: 0.5em; + border-bottom: dotted thin #c0c0c0; /* silver */ + margin-top: 1em; + margin-bottom: 1em; } .ingroups { @@ -252,7 +251,6 @@ div.contents { } div.contents ul, div.contents ol { - font-size: 14.4px; line-height: 1.3; } @@ -295,7 +293,6 @@ div.contents span.keycap, div.contents span.keysym { } div.contents div.textblock { - width: 95%; margin-bottom: 20px; } @@ -313,7 +310,7 @@ div.contents li { } div.contents dd { - font-size: 14.4px; + font-size: 12px; } div.contents dt { @@ -323,13 +320,12 @@ div.contents dt { /* The boxes from the userguide */ dl.note, dl.remark, dl.warning, dl.attention { - width: 100%; border-style: solid; border-width: 2px; margin-top: 24px; margin-bottom: 24px; padding: 4px; - min-height: 64px; + min-height: 48px; } dl.note { @@ -685,11 +681,10 @@ div.memproto { padding: 4px; background-color: #f3f3f3; /* concrete */ border: 1px solid #c0c0c0; /* silver */ - font-size: 13px; } div.memproto table { - font-size: 13px; + font-size: 14.4px; } /* member table */ diff --git a/docs/user/book.dox b/docs/user/book.dox index d057d81859..8d7db458fe 100644 --- a/docs/user/book.dox +++ b/docs/user/book.dox @@ -52,6 +52,8 @@ retrieving information from disk. - The \ref support contains support classes to use in your application including resources for thread safety, IO, and serialization. + - The \ref translation provides a framework for converting data streams + between media formats. \section special_topics Special Topics @@ -543,6 +545,11 @@ snooze_until(time - Latency(), B_SYSTEM_TIMEBASE); - Error codes for all kits + \defgroup translation Translation Kit + \brief Provides a framework for converting data streams between media + formats. + + \defgroup libbe (libbe.so) diff --git a/docs/user/interface/Font.dox b/docs/user/interface/Font.dox new file mode 100644 index 0000000000..71a1740d56 --- /dev/null +++ b/docs/user/interface/Font.dox @@ -0,0 +1,1423 @@ +/* + * Copyright 2013 Haiku inc. + * Distributed under the terms of the MIT License. + * + * Documentation by: + * John Scipione + * Corresponds to: + * /trunk/headers/os/interface/Font.h hrev45178 + * /trunk/src/kits/interface/Font.cpp hrev45178 + */ + + +/*! + \file Font.h + \brief BFont class definition, unicode_block class definition, and + font-related struct and enum definitions. +*/ + + +/*! + \var B_CHAR_SPACING + Position each character without adjustment. Best mode for printing. +*/ + + +/*! + \var B_STRING_SPACING + Optimizes the position of each character within it's space. Collisions + are unlikely but characters may touch each other. Best mode to use when + the screen needs to match what appears on the printed page. +*/ + + +/*! + \var B_BITMAP_SPACING + The widths of the characters are chosen so that they never collide and + rarely touch. Best mode for drawing small amounts of text. +*/ + + +/*! + \var B_FIXED_SPACING + Positions characters at a constant width. Best mode for fixed-width fonts. +*/ + + +/*! + \enum font_direction + Determines the direction of the text rendered by the font, + left-to-right or right-to-left. +*/ + +/*! + \var font_direction B_FONT_LEFT_TO_RIGHT + Left to right. +*/ + +/*! + \var font_direction B_FONT_RIGHT_TO_LEFT + Right to left. +*/ + + +/*! + \var B_DISABLE_ANTIALIASING + Disable antialiasing. Used by BFont::Flags() and BFont::SetFlags(). +*/ + + +/*! + \var B_FORCE_ANTIALIASING + Force antialiasing. Used by BFont::Flags() and BFont::SetFlags(). +*/ + + +/*! + \var B_TRUNCATE_END + Truncate from the end of the string. +*/ + + +/*! + \var B_TRUNCATE_BEGINNING + Truncate from the beginning of the string. +*/ + + +/*! + \var B_TRUNCATE_MIDDLE + Truncate from the middle of the string. +*/ + + +/*! + \var B_TRUNCATE_SMART + Truncate while keeping each string unique. +*/ + + +/*! + \var B_UNICODE_UTF8 + UTF-8 font encoding. +*/ + + +/*! + \var B_ISO_8859_1 + ISO 8859-1 aka Latin 1 "Western European" font encoding. +*/ + + +/*! + \var B_ISO_8859_2 + ISO 8859-2 aka Latin 2 "Eastern European" font encoding. +*/ + + +/*! + \var B_ISO_8859_3 + ISO 8859-3 aka Latin 3 "South European" font encoding. +*/ + + +/*! + \var B_ISO_8859_4 + ISO 8859-4 aka Latin 4 "Northern European" font encoding. +*/ + + +/*! + \var B_ISO_8859_5 + ISO 8859-5 "Latin/Cyrillic" font encoding. +*/ + + +/*! + \var B_ISO_8859_6 + ISO 8859-6 "Latin/Arabic" font encoding. +*/ + + +/*! + \var B_ISO_8859_7 + ISO 8859-7 "Latin/Greek" font encoding. +*/ + + +/*! + \var B_ISO_8859_8 + ISO 8859-8 "Latin/Hebrew" font encoding. +*/ + + +/*! + \var B_ISO_8859_9 + ISO 8859-9 aka Latin 5 "Latin/Turkish" font encoding. +*/ + + +/*! + \var B_ISO_8859_10 + ISO 8859-10 aka Latin 6 "Nordic" font encoding. +*/ + + +/*! + \var B_MACINTOSH_ROMAN + Macintosh Roman font encoding. +*/ + + +/*! + \var B_HAS_TUNED_FONT + flags for get_font_family() and get_font_style() +*/ + + +/*! + \var B_IS_FIXED + flags for get_font_family() and get_font_style() +*/ + + +/*! + \var B_ITALIC_FACE + Italic font face flag. +*/ + + +/*! + \var B_UNDERSCORE_FACE + Underscore font face flag. +*/ + + +/*! + \var B_NEGATIVE_FACE + Negative font face flag. +*/ + + +/*! + \var B_OUTLINED_FACE + Outline font face flag. +*/ + + +/*! + \var B_STRIKEOUT_FACE + Strikeout font face flag. +*/ + + +/*! + \var B_BOLD_FACE + Bold font face flag. +*/ + + +/*! + \var B_REGULAR_FACE + Regular font face flag. +*/ + + +/*! + \var B_CONDENSED_FACE + Condensed font face flag. Not in BeOS 5. +*/ + + +/*! + \var B_LIGHT_FACE + Light font face flag. Not in BeOS 5. +*/ + + +/*! + \var B_HEAVY_FACE + Heavy font face flag. Not in BeOS 5. +*/ + + +/*! + \enum font_metric_mode + Font metric mode, screen or printing. +*/ + +/*! + \var font_metric_mode B_SCREEN_METRIC + Screen font metric mode. +*/ + +/*! + \var font_metric_mode B_PRINTING_METRIC + Printing font metric mode. +*/ + + +/*! + \enum font_file_format + Font file format, TrueType™ or PostScript™ Type1. + + \see BFont::FileFormat() +*/ + +/*! + \var font_file_format B_TRUETYPE_WINDOWS + TrueType™ font file format. +*/ + +/*! + \var font_file_format B_POSTSCRIPT_TYPE1_WINDOWS + PostScript™ Type1 font file format. +*/ + + +/*! + \class unicode_block + \brief Describes the blocks of Unicode characters supported by a font. + + \see BFont::Blocks() +*/ + + +/*! + \fn unicode_block::unicode_block() + \brief Construct a \c unicode_block and set block data to 0. + + You must initialize the block data before before using this object. +*/ + + +/*! + \fn unicode_block::unicode_block(uint64 block2, uint64 block1) + \brief Construct a \c unicode_block object and initialize it with the + supplied Unicode block range. + + \param block2 End block. + \param block1 Begin block. +*/ + + +/*! + \fn bool unicode_block::Includes(const unicode_block& block) const + \brief Determines if \a block is a subset of the \c unicode_block object. + + \param block The Unicode block to check. + + \returns Whether or not \a block is a subset of the \c unicode_block + object. + \retval true \a block is a subset of the current \c unicode_block. + \retval false \a block is NOT a subset of the current \c unicode_block. +*/ + + +/*! + \name Assignment operators +*/ + + +//! @{ + + +/*! + \fn unicode_block unicode_block::operator&(const unicode_block& block) const + \brief Creates a new \c unicode_block object that is the intersection of + \a block and the \c unicode_block object. + + \param block The Unicode block to intersect with. + + \returns The intersection of \a block and the \c unicode_block object. +*/ + + +/*! + \fn unicode_block unicode_block::operator|(const unicode_block& block) const + \brief Creates a new \c unicode_block object that is the union of \a block + and the \c unicode_block object. + + \param block The Unicode block to form a union with. + + \returns The union of \a block and the \c unicode_block object. +*/ + + +/*! + \fn unicode_block& unicode_block::operator=(const unicode_block& block) + \brief Copies \a block data into the left-hand side object. + + \param block The unicode block to copy from. + + \returns A copy of \a block. +*/ + + +//! @} + + +/*! + \name Comparison operators +*/ + + +//! @{ + + +/*! + \fn bool unicode_block::operator==(const unicode_block& block) const + \brief Determines if the block object are exactly equal. + + \param block The unicode block to compare against. + + \returns \c true if the block object are exactly equal, \c false + otherwise. +*/ + + +/*! + \fn bool unicode_block::operator!=(const unicode_block& block) const + \brief Determines if the block object are not equal. + + \param block The unicode block to compare against. + + \returns \c true if the block object are NOT equal, \c false + if the block objects are exactly equal. +*/ + + +//! @} + + +/*! + \struct edge_info + \brief The distance that a character outline is inset from its escapement + boundaries. + + Edge values, like escapements, need to be multiplied by the font size to + get the correct value for the font. + + \see BFont::GetEdges() +*/ + + +/*! + \var edge_info::left + \brief The distance that the character outline is inset from the left + escapement boundary. +*/ + + +/*! + \var edge_info::right + \brief The distance that the character outline is inset from the right + escapement boundary. +*/ + + +/*! + \struct font_height + \brief The amount of vertical space surrounding a character. + + \see BFont::GetHeight() +*/ + + +/*! + \var font_height::ascent + \brief The distance characters can ascend above the baseline. +*/ + + +/*! + \var font_height::descent + \brief The distance characters can descend below the baseline. +*/ + + +/*! + \var font_height::leading + \brief The distance between lines, descent above to ascent below. +*/ + + +/*! + \struct escapement_delta + \brief The amount of horizontal space surrounding a character. + + Escapements need to be multiplied by the font size to get the correct + value for the font. + + \see BFont::GetEscapements() +*/ + + +/*! + \var escapement_delta::nonspace + \brief The amount of space surrounding a character with a visible glyph. +*/ + + +/*! + \var escapement_delta::space + \brief The amount of space surrounding a whitespace character, for example + \c B_TAB and \c B_SPACE. +*/ + + +/*! + \struct font_cache_info + \brief Font cache parameters. +*/ + + +/*! + \var font_cache_info::sheared_font_penalty + \brief Sheared font penalty. +*/ + + +/*! + \var font_cache_info::rotated_font_penalty + \brief Rotated font penalty. +*/ + + +/*! + \var font_cache_info::oversize_threshold + \brief Oversize threshold. +*/ + + +/*! + \var font_cache_info::oversize_penalty + \brief Oversize penalty. +*/ + +/*! + \var font_cache_info::cache_size + \brief Cache size. +*/ + + +/*! + \var font_cache_info::spacing_size_threshold + \brief Spacing size threshold. +*/ + + +/*! + \struct tuned_font_info + \brief Tuning information of fonts used to make it look better when + displayed on-screen. + + \see BFont::GetTunedInfo() + \see BFont::CountTuned() +*/ + + +/*! + \var tuned_font_info::size + \brief Font size. +*/ + + +/*! + \var tuned_font_info::shear + \brief Font shear. +*/ + + +/*! + \var tuned_font_info::rotation + \brief Font rotation. +*/ + + +/*! + \var tuned_font_info::flags + \brief Font flags. +*/ + +/*! + \var tuned_font_info::face + \brief Font face. +*/ + + +/*! + \fn int32 count_font_families() + \brief Gets the number of installed font families + + \return The number of installed font families +*/ + + +/*! + \fn int32 count_font_styles(font_family family) + \brief Gets the number of styles available for a font family. + + \return The number of styles available for a font family. +*/ + + +/*! + \fn status_t get_font_family(int32 index, font_family *_name, + uint32 *_flags) + \brief Retrieves the family name at the specified index. + + \param index Unique font identifier code. + \param _name font_family String to receive the name of the family. + \param _flags if non-NULL, the values of the flags \c IS_FIXED + and \c B_HAS_TUNED_FONT are returned. + + \return A status code, \c B_OK on success or an error code. + \retval B_BAD_VALUE \a _name is \c NULL. + \retval B_ERROR \a index does not correspond to a font family. +*/ + + +/*! + \fn status_t get_font_style(font_family family, int32 index, + font_style *_name, uint32 *_flags) + \brief Retrieves the family name at the specified index. + + \param family The font family. + \param index Unique font identifier code. + \param _name string to receive the name of the family. + \param _flags if non-NULL, the values of the flags \c IS_FIXED + and \c B_HAS_TUNED_FONT are returned + + \return A status code, \c B_OK on success or an error code. + \retval B_ERROR \a index does not correspond to a font style. +*/ + + +/*! + \fn status_t get_font_style(font_family family, int32 index, + font_style *_name, uint16 *_face, uint32 *_flags) + \brief Retrieves the family name at the specified index. + + The face value returned by this function is not very reliable. At the same + time, the value returned should be fairly reliable, returning the proper + flag for 90%-99% of font names. + + \param family The font family. + \param index Unique font identifier code. + \param _name String to receive the name of the family. + \param _face recipient of font face value, such as \c B_REGULAR_FACE. + \param _flags if non-NULL, the values of the flags \c IS_FIXED + and \c B_HAS_TUNED_FONT are returned. + + \return A status code, \c B_OK on success or an error code. + \retval B_ERROR \a index does not correspond to a font style. +*/ + + +/*! + \fn bool update_font_families(bool checkOnly) + \brief Updates the font families list. + + \param checkOnly Parameter is ignored. + + \return \c true if the font list has changed, \c false if not. +*/ + + +/*! + \class BFont + \ingroup interface + \ingroup libbe + \brief Represents a typeface including it's family, style and size. + + The Interface Kit provides three prebuilt BFont objects which can be used + but not modified. + - \c const BFont* \c be_plain_font A plain font used by many controls. + - \c const BFont* \c be_bold_font A bold font used by titles. + - \c const BFont* \c be_fixed_font A fixed-width font. + + A BFont object does nothing on it's own but is used in combination with + a view or control. Here is an example of creating a BFont object from a + system font and assigning it to a view: + +\code + BFont font(be_plain_font); + font.SetSize(12.0); + font.SetEncoding(B_ISO_8859_1); + view->SetFont(&font); +\endcode + + You may also create a BFont object from a view, modify it and reassign it + back to the view like this: + +\code + BFont font; + view->GetFont(&font); + font.SetFace(B_ITALIC_FACE); + font.SetSpacing(B_CHAR_SPACING); + myView->SetFont(&font); +\endcode + + You can change the way a font renders with the SetFamilyAndStyle(), + SetFamilyAndFace(), SetSize(), SetShear(), SetRotation(), + SetFalseBoldWidth(), SetSpacing(), SetEncoding(), SetFace(), and + SetFlags() methods. + + More information about the space taken up by a font can be determined + by querying a BFont object using the following methods: + StringWidth(), GetStringWidths() GetEscapements(), GetEdges(), + GetHeight(), BoundingBox() GetBoundingBoxesAsGlyphs(), + GetBoundingBoxesAsString(), and GetBoundingBoxesForStrings(). + + You can also perform intelligent string truncation with the + TruncateString() and GetTruncatedStrings() methods. +*/ + + +/*! + \fn BFont::BFont() + \brief Creates a BFont object initialized to \c be_plain_font. + + \see BView::GetFont() +*/ + + +/*! + \fn BFont::BFont(const BFont &font) + \brief Creates and initializes a BFont object from another BFont object. + + \param font The BFont object to initialize from. +*/ + + +/*! + \fn BFont::BFont(const BFont *font) + \brief Creates and initializes a BFont object from a pointer to a BFont + object. + + \param font The pointer to a BFont object to initialize from. +*/ + + +/*! + \fn BFont::BFont(const BFont *font) + \brief Creates and initializes a BFont object from a pointer to a BFont + object. + + \param font The pointer to a BFont object to initialize from. +*/ + + +/*! + \fn status_t BFont::SetFamilyAndStyle(const font_family family, + const font_style style) + \brief Sets the font's family and style all at once. + + \param family Font family to set. + \param style Font style to set. + + \returns A status code, \c B_OK on success or an error code. + \retval B_BAD_VALUE \a family is \c NULL and \a style is \c NULL. + \retval B_NAME_NOT_FOUND Family or style do not exist. +*/ + + +/*! + \fn void BFont::SetFamilyAndStyle(uint32 code) + \brief Sets the font's family and style from a font identifier. + + \param code Unique font identifier obtained from the server. +*/ + + +/*! + \fn status_t BFont::SetFamilyAndFace(const font_family family, uint16 face) + \brief Sets the font's family and face all at once. + + \param family Font family to set. + \param face Font face to set. + + \note To comply with the BeBook, this function will only set valid values, + i.e. passing a nonexistent family will cause only the face to be set. + Additionally, if a particular face does not exist in a family, the + closest match will be chosen. + + \returns A status code, \c B_OK on success or an error code. + \retval B_ERROR Family does not exists or face has an invalid value. +*/ + + +/*! + \fn void BFont::SetSize(float size) + \brief Sets the font size. + + \param size The point size to set the font to. +*/ + + +/*! + \fn void BFont::SetShear(float shear) + \brief Sets the angle in degrees relative to the baseline. + + The default shear is 90.0° measured counterclockwise. The shear + range is from 45.0° to 135.0°. + + \param shear The shear in degrees to set the font to. +*/ + + +/*! + \fn void BFont::SetRotation(float rotation) + \brief Sets the font rotation from the baseline in degrees. + + The default baseline is 0° and rotates counterclockwise. Rotation is not + supported by BTextView. + + \param rotation The rotation in degrees to set the font to. +*/ + + +/*! + \fn void BFont::SetFalseBoldWidth(float width) + \brief Sets the false bold width. + + \param width The false bold width to set. +*/ + + +/*! + \fn void BFont::SetSpacing(uint8 spacing) + \brief Sets how characters are horizontally spaced relative to each other. + + - \c B_CHAR_SPACING Position each character without adjustment. Best mode + for printing. Characters may collide or overlap at small font sizes. + - \c B_STRING_SPACING Optimizes the position of each character within it's + space. Collisions are unlikely but characters may touch each other. + Best mode to use when the screen needs to match what appears on the + printed page. Adding new characters requires the entire string to + be redrawn. + - \c B_BITMAP_SPACING The widths of the characters are chosen so that they + never collide and rarely touch. Best mode for drawing small amounts + of text. Character widths are integral values. Spacing on screen will + not match spacing used by \c B_CHAR_SPACING mode for printing. + - \c B_FIXED_SPACING Positions characters at a constant width. Must be + used with fixed-width fonts otherwise \c B_CHAR_SPACING mode is used. + All characters have an identical integral escapement. + + \c B_STRING_SPACING and \c B_BITMAP_SPACING modes are relevant only for + font sizes from 7.0pt to 18.0pt, above and below that range + \c B_CHAR_SPACING produces nicer results. \c B_CHAR_SPACING is also always + used for rotated or sheared text and when antialiasing is disabled. + + \param spacing The spacing mode to set. + + \see BView::DrawString() + \see GetEscapements() +*/ + + +/*! + \fn void BFont::SetEncoding(uint8 encoding) + \brief Sets the character encoding of the font for example + \c B_UNICODE_UTF8 or \c B_ISO_8859_1. + + The following character encodings are supported: + - \c B_UNICODE_UTF8 + - \c B_ISO_8859_1 aka Latin 1 aka "Western European". + - \c B_ISO_8859_2 aka Latin 2 aka "Eastern European". + - \c B_ISO_8859_3 aka Latin 3 aka "South European". + - \c B_ISO_8859_4 aka Latin 4 aka "Northern European". + - \c B_ISO_8859_5 aka "Latin/Cyrillic". + - \c B_ISO_8859_6 aka "Latin/Arabic". + - \c B_ISO_8859_7 aka "Latin/Greek". + - \c B_ISO_8859_8 aka "Latin/Hebrew". + - \c B_ISO_8859_9 aka Latin 5 aka "Latin/Turkish". + - \c B_ISO_8859_10 aka Latin 6 aka "Nordic". + - \c B_MACINTOSH_ROMAN + + \param encoding The character encoding to set the font to. +*/ + + +/*! + \fn void BFont::SetFace(uint16 face) + \brief Sets the font face according to the flags set by \a face. + + The following font face flags are supported: + - \c B_ITALIC_FACE Characters are slanted to the right. + - \c B_UNDERSCORE_FACE Characters are underlined. + - \c B_NEGATIVE_FACE High and low colors are reversed when drawing + characters. + - \c B_OUTLINED_FACE Characters are drawn hollowed out. + - \c B_STRIKEOUT_FACE A horizontal line is drawn through their middle. + - \c B_BOLD_FACE Characters are bold. + - \c B_REGULAR_FACE Characters are drawn normally. + - \c B_CONDENSED_FACE Characters are drawn condensed. Not in BeOS 5. + - \c B_LIGHT_FACE Characters are drawn thiner than normal. Not in BeOS 5. + - \c B_HEAVY_FACE Characters are drawn heavier than normal. Not in BeOS 5. + + \param face The bitmap of font face flags to set. +*/ + + +/*! + \fn void BFont::SetFlags(uint32 flags) + \brief Sets font flags controlling antialiasing. + + The following flags are supported: + - \c B_DISABLE_ANTIALIASING Disable antialiasing. + - \c B_FORCE_ANTIALIASING Force antialiasing. + + \param flags The bitmap of flags to set. +*/ + + +/*! + \fn void BFont::GetFamilyAndStyle(font_family *family, + font_style *style) const + \brief Writes out the name of the font family and/or font style. + + This method may be called with either \a family or \a style set to + \c NULL in order to get one or the other. + + \param family A font_family pointer to be filled out. + \param style A font_style pointer to be filled out. +*/ + + +/*! + \fn uint32 BFont::FamilyAndStyle() const + \brief Gets the code of the font family and style combination. + + \returns The family and style combination encoded as a unique integer. + + \see SetFamilyAndStyle(uint32 code) +*/ + + +/*! + \fn float BFont::Size() const + \brief Gets the font size. + + \returns The font size in points. + + \see SetSize() +*/ + + +/*! + \fn float BFont::Shear() const + \brief Gets the font shear. + + \returns The font shear as an angle from 45.0° to 135.0°. + + \see SetShear() +*/ + + +/*! + \fn float BFont::Rotation() const + \brief Gets the font rotation. + + \returns The font rotation as an angle in degrees. + + \see SetRotation() +*/ + + +/*! + \fn float BFont::FalseBoldWidth() const + \brief Gets the width of the font as if it were bold. + + \returns The font width of the bold font variety. + + \see SetFalseBoldWidth() +*/ + + +/*! + \fn uint8 BFont::Spacing() const + \brief Gets the spacing constant. + + \returns The spacing constant. + + \see SetSpacing() +*/ + + +/*! + \fn uint8 BFont::Encoding() const + \brief Gets the character encoding constant. + + \returns The character encoding constant. + + \see SetEncoding() +*/ + + +/*! + \fn uint16 BFont::Face() const + \brief Gets the font face flags bitmap. + + \returns The font face flags bitmap. + + \see SetFace() +*/ + + +/*! + \fn uint32 BFont::Flags() const + \brief Gets the antialiasing flags. + + \returns The antialiasing flags. + + \see SetFlags() +*/ + + +/*! + \fn font_direction BFont::Direction() const + \brief Gets the font direction, left-to-right or right-to left. + + \returns The font direction. +*/ + + +/*! + \fn bool BFont::IsFixed() const + \brief Gets whether or not the font is fixed width. + + \returns \c true if the font is fixed width, \c false otherwise. +*/ + + +/*! + \fn bool BFont::IsFullAndHalfFixed() const + \brief Returns whether or not the font is fixed-width and contains both + full and half-width characters. + + \note This was left unimplemented as of R5. It is a way to work with both + Kanji and Roman characters in the same fixed-width font. +*/ + + +/*! + \fn BRect BFont::BoundingBox() const + \brief Gets a BRect that encloses the font text. + + \returns A BRect that encloses the font text. +*/ + + +/*! + \fn unicode_block BFont::Blocks() const + \brief Gets a \c unicode_block object that identifies the Unicode blocks + supported by this font face and family. + + \attention Currently unimplemented, returns an empty \a unicode_block + object. + + \returns A \c unicode_block object containing supported Unicode blocks. +*/ + + +/*! + \fn font_file_format BFont::FileFormat() const + \brief Gets whether the font is a TrueType™ or PostScript™ Type1 font. + + \returns A \c font_file_format struct containing the font file format. +*/ + + +/*! + \fn int32 BFont::CountTuned() const + \brief Gets the number of tuned fonts for the font family and style. + + \returns The number of tuned fonts. +*/ + + +/*! + \fn void BFont::GetTunedInfo(int32 index, tuned_font_info *info) const + \brief Writes information about the tuned font at \a index into \a info. + + The index begins at 0 and counts tuned fonts for current font family and + style only. + + \param index The index of desired tuned font. + \param info The \a turned_font_info struct to be filled out. +*/ + + +/*! + \fn void BFont::TruncateString(BString *inOut, uint32 mode, + float width) const + \brief Truncates \a inOut to be no longer than \a width using the + supplied truncation \a mode. + + The following truncation modes are supported: + - \c B_TRUNCATE_BEGINNING Truncate from the beginning of the string. + - \c B_TRUNCATE_MIDDLE Truncate from the middle of the string. + - \c B_TRUNCATE_END Truncate from the end of the string. + - \c B_TRUNCATE_SMART Truncate from anywhere, but do so so that each + string is made unique after being truncated. + + \param inOut The BString to truncate. + \param mode Truncation mode to use. + \param width The maximum width to truncate to. +*/ + + +/*! + \fn void BFont::GetTruncatedStrings(const char *stringArray[], + int32 numStrings, uint32 mode, float width, + BString resultArray[]) const + \brief Write truncated BString objects to \a resultArray given source + BString objects in \a stringArray. + + The following truncation modes are supported: + - \c B_TRUNCATE_BEGINNING Truncate from the beginning of the string. + - \c B_TRUNCATE_MIDDLE Truncate from the middle of the string. + - \c B_TRUNCATE_END Truncate from the end of the string. + - \c B_TRUNCATE_SMART Truncate from anywhere, but do so so that each + string is made unique after being truncated. + + \param stringArray The source string array. + \param numStrings The number of strings in \a stringArray. + \param mode Truncation mode to use. + \param width The maximum width to truncate to. + \param resultArray The destination string array. +*/ + + +/*! + \fn void BFont::GetTruncatedStrings(const char *stringArray[], + int32 numStrings, uint32 mode, float width, char *resultArray[]) const + \brief Write truncated strings to \a resultArray given source + BString objects in \a stringArray. + + \a resultArray is an array of pointers to string buffers which should be + allocated ahead of time and should be at least 3 bytes longer than the + matching input string. The 3 extra bytes provide enough room for the + truncated output given that GetTruncatedStrings() truncates only a + single-byte character from the input string and replaces it with an + ellipsis character (which takes three bytes for the UTF-8 encoding), + and adds a \c NUL-terminator. + + The following truncation modes are supported: + - \c B_TRUNCATE_BEGINNING Truncate from the beginning of the string. + - \c B_TRUNCATE_MIDDLE Truncate from the middle of the string. + - \c B_TRUNCATE_END Truncate from the end of the string. + - \c B_TRUNCATE_SMART Truncate from anywhere, but do so so that each + string is made unique after being truncated. + + \param stringArray The source string array. + \param numStrings The number of strings in \a stringArray. + \param mode Truncation mode to use. + \param width The maximum width to truncate to. + \param resultArray The destination string array. +*/ + + +/*! + \fn float BFont::StringWidth(const char *string) const + \brief Determines the amount of space required to draw \a string in the + current font. + + \param string The source string. + + \returns The width required to draw the string. +*/ + + +/*! + \fn float BFont::StringWidth(const char *string, int32 length) const + \brief Determines the amount of space required to draw \a string in the + current font up to \a length characters. + + \param string The source string. + \param length The number of characters in \a string to consider. + + \returns The width required to draw the string. +*/ + + +/*! + \fn void BFont::GetStringWidths(const char *stringArray[], + const int32 lengthArray[], int32 numStrings, float widthArray[]) const + \brief Determines the amount of space required to draw each string in + \a stringArray and writes the result in \a widthArray. + + \param stringArray The source string array. + \param lengthArray The number of characters to consider for each string in + \a stringArray + \param numStrings The number of strings in \a stringArray. + \param widthArray The destination array to put the widths required to draw + each string. +*/ + + +/*! + \fn void BFont::GetEscapements(const char charArray[], int32 numChars, + float escapementArray[]) const + \brief Determines the escapements for each char in \a charArray and writes + the result in \a escapementArray. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param escapementArray The destination array to put the escapements. +*/ + + +/*! + \fn void BFont::GetEscapements(const char charArray[], int32 numChars, + escapement_delta *delta, float escapementArray[]) const + \brief Determines the escapements for each char in \a charArray and writes + the result in \a escapementArray with consideration to the provided + escapement \a delta. + + The escapement_delta structure contains the following values: + - \c nonspace The amount of space surrounding a character with a visible + glyph. + - \c space The amount of space surrounding a whitespace character, for + example \c B_TAB and \c B_SPACE. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param delta The escapement_delta structure to use. + \param escapementArray The destination array to put the escapements. +*/ + + +/*! + \fn void BFont::GetEscapements(const char charArray[], int32 numChars, + escapement_delta *delta, BPoint escapementArray[]) const + \brief Determines the escapements for each char in \a charArray and writes + the result in \a escapementArray as an array of BPoint objects + with consideration to the provided escapement \a delta. + + The escapement_delta structure contains the following values: + - \c nonspace The amount of space surrounding a character with a visible + glyph. + - \c space The amount of space surrounding a whitespace character, for + example \c B_TAB and \c B_SPACE. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param delta The escapement_delta structure to use. + \param escapementArray The destination array of escapements as BPoint + objects. +*/ + + +/*! + \fn void BFont::GetEscapements(const char charArray[], int32 numChars, + escapement_delta *delta, BPoint escapementArray[], + BPoint offsetArray[]) const + \brief Determines the escapements for each char in \a charArray and writes + the result in \a escapementArray as an array of BPoint objects + with consideration to the provided escapement \a delta + and writes offsets to \a offsetArray. + + The escapement_delta structure contains the following values: + - \c nonspace The amount of space surrounding a character with a visible + glyph. + - \c space The amount of space surrounding a whitespace character, for + example \c B_TAB and \c B_SPACE. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param delta The escapement_delta structure to use. + \param escapementArray The destination array of escapements as BPoint + objects. + \param offsetArray The destination array of offsets as BPoint objects. +*/ + + +/*! + \fn void BFont::GetEdges(const char charArray[], int32 numChars, + edge_info edgeArray[]) const + \brief Determines the edge information for each character in \a charArray + and writes the result in \a edgeArray. + + The \c edge_info struct contains the following values: + - \c left The distance that the character outline is inset from the left + escapement boundary. + - \c right The distance that the character outline is inset from the + right escapement boundary. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param edgeArray The destination array of \c edge_info structs. +*/ + + +/*! + \fn void BFont::GetHeight(font_height *_height) const + \brief Fills out the \c font_height struct with the amount of vertical + space surrounding a character. + + The \c font_height struct contains the following values: + - \c ascent The distance characters can ascend above the baseline. + - \c descent The distance characters can descend below the baseline. + - \c leading The distance between lines, descent above to ascent below. + + \param _height The \c font_height struct to fill out. +*/ + + +/*! + \fn void BFont::GetBoundingBoxesAsGlyphs(const char charArray[], + int32 numChars, font_metric_mode mode, BRect boundingBoxArray[]) const + \brief Writes an array of BRect objects to \a boundingBoxArray + representing the bounding rectangles of each character in + \a charArray. + + Each BRect object corresponds to the glyph of one character. + + The \c font_metric_mode should contain one of the following values: + - \c B_SCREEN_METRIC The bounding boxes should use the screen metric. + - \c B_PRINTING_METRIC The bounding boxes should use the print metric. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param mode The \c font_metric_mode to use, screen or printing. + \param boundingBoxArray The destination array of BRect bounding boxes. +*/ + + +/*! + \fn void BFont::GetBoundingBoxesAsString(const char charArray[], + int32 numChars, font_metric_mode mode, escapement_delta *delta, + BRect boundingBoxArray[]) const + \brief Writes an array of BRect objects to \a boundingBoxArray + representing the bounding rectangles of each character in + \a charArray with consideration to the provided escapement + \a delta. + + Each BRect object corresponds to the glyph of one character. + + The \c font_metric_mode should contain one of the following values: + - \c B_SCREEN_METRIC The bounding boxes should use the screen metric. + - \c B_PRINTING_METRIC The bounding boxes should use the print metric. + + Escapement deltas are applied as part of the bounding box calculations. + This lets you specify a character spacing is looser or tighter than + normal. + + The escapement_delta structure contains the following values: + - \c nonspace The amount of space surrounding a character with a visible + glyph. + - \c space The amount of space surrounding a whitespace character, for + example \c B_TAB and \c B_SPACE. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param mode The \c font_metric_mode to use, screen or printing. + \param delta The escapement_delta structure to use. + \param boundingBoxArray The destination array of BRect bounding boxes. +*/ + + +/*! + \fn void BFont::GetBoundingBoxesForStrings(const char *stringArray[], + int32 numStrings, font_metric_mode mode, escapement_delta deltas[], + BRect boundingBoxArray[]) const + \brief Writes an array of BRect objects to \a boundingBoxArray + representing the bounding rectangles of each string in + \a stringArray with consideration to the provided escapement + \a delta. + + Each BRect object corresponds to the bounding box of the entire string. + + The \c font_metric_mode should contain one of the following values: + - \c B_SCREEN_METRIC The bounding boxes should use the screen metric. + - \c B_PRINTING_METRIC The bounding boxes should use the print metric. + + Escapement deltas are applied as part of the bounding box calculations. + This lets you specify a character spacing is looser or tighter than + normal. + + The escapement_delta structures should contain the following values: + - \c nonspace The amount of space surrounding a character with a visible + glyph. + - \c space The amount of space surrounding a whitespace character, for + example \c B_TAB and \c B_SPACE. + + \param stringArray The source string array. + \param numStrings The number of strings to consider in \a stringArray. + \param mode The \c font_metric_mode to use, screen or printing. + \param deltas The array of escapement_delta structures to use. + \param boundingBoxArray The destination array of BRect bounding boxes. +*/ + + +/*! + void BFont::GetGlyphShapes(const char charArray[], int32 numChars, + BShape *glyphShapeArray[]) const + \brief Writes an array of BShape objects to \a glyphShapeArray + representing the glyph shapes of each character in + \a charArray. + + Each BShape object corresponds to the glyph of one character. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param glyphShapeArray The destination array of BShape glyphs. +*/ + + +/*! + void BFont::GetHasGlyphs(const char charArray[], int32 numChars, + bool hasArray[]) const + \brief Fills out \a hasArray with whether or not each characters in + \a charArray has a glyph for the font. + + \c true is written in \a hasArray if the character has a glyph in the + current font and \c false is written in \a hasArray if the character + does NOT have a glyph in the current font. + + \param charArray The source character array. + \param numChars The number of characters to consider in \a charArray. + \param hasArray The destination array of booleans. +*/ + + +/*! + BFont& BFont::operator=(const BFont &font) + \brief Assignment overload method. + + \param font The BFont object to assign from. +*/ + + +/*! + bool BFont::operator==(const BFont &font) const + \brief Equality comparison overload method. + + \param font The BFont object to compare the current font to. + + \returns \c true if the fonts objects are identical, \c false otherwise. +*/ + + +/*! + bool BFont::operator!=(const BFont &font) const + \brief Inequality comparison overload method. + + \param font The BFont object to compare the current font to. + + \returns \c true if the fonts objects are NOT identical, \c true + otherwise. +*/ + + +/*! + void BFont::PrintToStream() const + \brief Writes information about the font to \c stdout. + + printf("BFont { %s (%d), %s (%d) 0x%x %f/%f %fpt (%f %f %f), %d }\n", + family, fFamilyID, style, fStyleID, fFace, fShear, fRotation, fSize, + fHeight.ascent, fHeight.descent, fHeight.leading, fEncoding); +*/ diff --git a/docs/user/storage/FilePanel.dox b/docs/user/storage/FilePanel.dox index bcfa4edba8..b952ae4f65 100644 --- a/docs/user/storage/FilePanel.dox +++ b/docs/user/storage/FilePanel.dox @@ -91,15 +91,79 @@ An open dialog looks similar but doesn't have a text box for the file name. - Creating a basic open or save panel is easy: + You generally construct a BFilePanel object in response to a user action + for example the user clicks on a "Open" or "Save"/"Save As" menu item. + Constructing an open or save panel is easy: \code BFilePanel* openPanel = new BFilePanel(B_OPEN_PANEL); BFilePanel* savePanel = new BFilePanel(B_SAVE_PANEL); \endcode - There are many options but they can generally be set after the object has - been constructed. + You can then call methods to indicate what directory to display, whether + or not multiple selections are allowed, whether or not the user is + allowed to open a directory, what target view to send send notifications, + and more. See the constructor for details. + + You can modify the look of your BFilePanel object by calling the + SetButtonLabel() and SetSaveText() methods. If you want to change the look + even more radically you can get alter the panel's BWindow and BView + objects. You get the window by calling the Window() method. With a pointer + to the panel's BWindow object you can drill down to the various views + contained therein. + + Once you have constructed and customized your BFilePanel object you should + call the Show() method to display the panel to the user. + + When the user confirms or cancels a BMessage object is constructed and sent + to the target of the BFilePanel object. You can specify a different + target in the constructor or by calling the SetTarget() method. + + Open Notifications + + For open notifications the default target is \c be_app_messenger and is + caught by the RefsReceived() method The \c what field is set to + \c B_REFS_RECEIVED. You can set your own message by calling the + SetMessage() method; in this case the message will be sent to the target's + MessageReceived() method instead. + + The \c refs field of the message contains an \c entry_ref structure + for each entry that the user has selected. The \c refs field is of + type \c B_REF_TYPE. If the selected entry is a symlink to a file you'll + need to dereference the file yourself. You can do this more easily by + turning the \c ref into a BEntry passing \c true into the \c traverse + argument like this: + +\code + BEntry entry(ref, true); +\endcode + + Save Notifications + + Save notifications are always sent to the target's MessageReceived() + method unlike open notifications. The \c what field of the message is + set to \c B_SAVE_REQUESTED. The \c directory field contain a single + \c entry_ref structure that points to the directory that the entry is + saved to. The text that the user typed in the save panel's text view + is put in the \c name field and is of type \c B_STRING_TYPE. + + Cancel Notifications + + Cancel notifications are sent when the panel is hidden whether by the + user clicking the cancel button, closing the dialog, or confirming the + action (assuming hide-when-done is turned on). + + Cancel notifications can be caught by the MessageReceived() method of + the target. The \c what field is set to \c B_CANCEL. The \c old_what + field is set to the previous what value which is useful if you have + overridden the default message. The \c what field of the message you + sent is put in the \c old_what field. + + The \c source field is a pointer of \c B_POINTER_TYPE to the closed + BFilePanel object. When the BFilePanel object is closed it is not + destroyed, it is hidden instead. You can then delete the BFilePanel + object or leave it be and simply call Show() to use the panel next time + you need it. */ @@ -109,18 +173,27 @@ BMessage* message, BRefFilter* filter, bool modal, bool hideWhenDone) \brief Creates and initializes a BFilePanel object. - The panel is not displayed until call the Show() method. + The constructor has many parameters but they may generally be set after + the object has been constructed. The only parameters that must be set + during construction are the \a mode, \a nodeFlavors, \a multipleSelection, + and \a modal parameters. The rest may be set after the object has been + constructed by the SetTarget(), SetPanelDirectory(), SetMessage(), + SetRefFilter(), and SetHideWhenDone() methods. - \param mode Either \c B_OPEN_PANEL or \c B_SAVE_PANEL. + \param mode Set to \c B_OPEN_PANEL for an open panal or \c B_SAVE_PANEL + for a save panel. Default is \c B_OPEN_PANEL. \param target The BMessenger object that sends messages to the BLooper or BHandler controlled by the file panel. \param ref The directory to display, by default the current working directory. - \param nodeFlavors Option flags, this applies to open panels only. - \param multipleSelection Determines whether or not the user is allowed - to select more than one item. - \param message Override the default message sent by the file panel. - \param filter Filter Hook function to call. + \param nodeFlavors One or more option flags, this applies to open panels only. + - \c B_FILE_NODE Can select files and symlinks to files. + - \c B_DIRECTORY_NODE Can select directories and symlinks to directories. + - \c B_SYMLINK_NODE Can select symlinks only. + \param multipleSelection Whether or not the user is allowed to select more + than one item to open. Save panels should always set this to \c false. + \param message Message sent by the file panel on confirms or cancels. + \param filter Hook method to call. \param modal Whether or not the panel is modal, defaults to \c false. \param hideWhenDone Set to \c false to keep the panel even after the user confirms or cancels. The close button will hide the panel regardless. diff --git a/docs/user/translation/BitmapStream.dox b/docs/user/translation/BitmapStream.dox new file mode 100644 index 0000000000..26eaa93414 --- /dev/null +++ b/docs/user/translation/BitmapStream.dox @@ -0,0 +1,170 @@ +/* + * Copyright 2002-2013 Haiku Inc. + * Distributed under the terms of the MIT License. + * + * Documentation by: + * John Scipione + * Travis Smith + * Michael Wilber + * Corresponds to: + * /trunk/headers/os/translation/BitmapStream.h hrev45181 + * /trunk/src/kits/translation/BitmapStream.cpp hrev45181 + */ + + +/*! + \file BitmapStream.h + \brief BBitmapStream class definition. +*/ + + +/*! + \class BBitmapStream + \ingroup translation + \ingroup libbe + \brief Provides for the conversion of a Translation Kit bitmap object to + a BBitmap. + + BBitmapStream is limited subclass of BPositionIO that is good at reading + and writing Translation Kit bitmaps. The DetachBitmap() method + is the main method of this class as it returns the contents of the + Translation Kit bitmap object into a BBitmap. + + In most cases you shouldn't have to use this class directly as + BTranslationUtils contains methods to load images from files and + resources. +*/ + + +/*! + \fn BBitmapStream::BBitmapStream(BBitmap* bitmap) + \brief Initializes this object to either use the BBitmap passed to + it as the object to read/write to or to create a BBitmap when data + is written to this object. + + If \a bitmap is \c NULL, a new BBitmap object is created when this object + is written to. + + \param bitmap The bitmap object to read from/write to. +*/ + + +/*! + \fn void BBitmapStream::~BBitmapStream() + \brief Destroys the object and the BBitmap object if attached. +*/ + + +/*! + \fn ssize_t BBitmapStream::ReadAt(off_t pos, void* buffer, size_t size) + \brief Reads data from the stream into \a buffer at a specific position + and size. + + The first sizeof(TranslatorBitmap) bytes are the bitmap header. The header + is always written out and read in as big endian byte order. + + \param pos The position in the stream to read from. + \param buffer Where the data will be read into + \param size The amount of data to be read. + + \return The amount of data written if the result is >= 0 or an error code. + \retval B_BAD_VALUE \a buffer is \c NULL or \a pos is invalid or the amount + read if the result >= 0 + \retval B_NO_INIT There is no bitmap stored by the stream. +*/ + + +/*! + \fn ssize_t BBitmapStream::WriteAt(off_t pos, const void* data, + size_t size) + \brief Writes data to the bitmap starting at a specific position and size. + + The first sizeof(TranslatorBitmap) bytes of data must be the + TranslatorBitmap header in big endian byte order or the data + will not be written. + + \param pos The position in the stream to write to \a data. + \param data The data to write to the stream. + \param size The size of the data to write to the stream. + + \return The amount of data written if the result is >= 0 or an error code. + \retval B_BAD_VALUE Size is bad or data is \c NULL or \a pos is invalid. + \retval B_MISMATCHED_VALUES The bitmap header is bad. + \retval B_ERROR Error allocating memory or setting up big endian header, +*/ + + +/*! + \fn off_t BBitmapStream::Seek(off_t position, uint32 seekMode) + \brief Changes the current stream position. + + \param position The position offset. + \param seekMode Decides how the position offset is used: + - \c SEEK_CUR Position is added to current stream position. + - \c SEEK_END Position is added to the end stream position. + - \c SEEK_SET The stream position is set to position. + + \return The new position offset if the result >= 0. + \retval B_BAD_VALUE \a position was bad. +*/ + + +/*! + \fn off_t BBitmapStream::Position() const + \brief Gets the current stream position. + + \returns The current stream position. +*/ + + +/*! + \fn off_t BBitmapStream::Size() const + \brief Gets the current stream size. + + \returns The current stream size. +*/ + + +/*! + \fn status_t BBitmapStream::SetSize(off_t size) + \brief Sets the size of the data. + + \param size The size to set the stream size to. + + \return A status code, \c B_NO_ERROR on success or an error code. + \retval B_NO_ERROR (or \c B_OK) Size is a valid value. + \retval B_BAD_VALUE \a size is NOT a valid value. +*/ + + +/*! + \fn status_t BBitmapStream::DetachBitmap(BBitmap** _bitmap) + \brief Sets \a _bitmap to point to the internal bitmap object. + + The bitmap is not deleted when the BBitmapStream is deleted. After the + bitmap has been detached it is still used by the stream, but it is never + deleted by the stream. + + Once you have called DetachBitmap() no further operations should be + performed on the BBitmapStream except to destroy the object. + + \param _bitmap A BBitmap pointer that will be set to point to the internal + bitmap object. + + \return A status code, \c B_OK on success or an error code. + \retval B_OK The bitmap was detached. + \retval B_BAD_VALUE _bitmap is \c NULL. + \retval B_ERROR The internal bitmap object is \c NULL or has already been + detached. +*/ + + +/*! + \fn void BBitmapStream::SwapHeader(const TranslatorBitmap* source, + TranslatorBitmap* destination) + \brief Swaps the byte order of \a source, no matter the byte order, and + copies the result to \a destination. + + \param source Data to be swapped. + \param destination Where the swapped data will be copied to. +*/ diff --git a/headers/os/interface/Font.h b/headers/os/interface/Font.h index 9ff299c8f7..7b7cd0ec64 100644 --- a/headers/os/interface/Font.h +++ b/headers/os/interface/Font.h @@ -9,6 +9,7 @@ #include #include + class BPoint; @@ -138,8 +139,8 @@ struct escapement_delta { struct font_cache_info { - int32 sheared_font_penalty; - int32 rotated_font_penalty; + int32 sheared_font_penalty; + int32 rotated_font_penalty; float oversize_threshold; int32 oversize_penalty; int32 cache_size; @@ -352,7 +353,7 @@ unicode_block::operator&(const unicode_block& block) const return result; } - + unicode_block unicode_block::operator|(const unicode_block& block) const { @@ -363,7 +364,7 @@ unicode_block::operator|(const unicode_block& block) const return result; } - + unicode_block& unicode_block::operator=(const unicode_block& block) { @@ -386,4 +387,5 @@ unicode_block::operator!=(const unicode_block& block) const return fData[0] != block.fData[0] || fData[1] != block.fData[1]; } + #endif // _FONT_H_ diff --git a/src/add-ons/kernel/bus_managers/pci/pci.cpp b/src/add-ons/kernel/bus_managers/pci/pci.cpp index 73447cc639..081b2fb097 100644 --- a/src/add-ons/kernel/bus_managers/pci/pci.cpp +++ b/src/add-ons/kernel/bus_managers/pci/pci.cpp @@ -504,6 +504,9 @@ pci_uninit(void) remove_debugger_command("inb", &display_io); remove_debugger_command("in8", &display_io); + remove_debugger_command("pcistatus", &pcistatus); + remove_debugger_command("pcirefresh", &pcirefresh); + delete gPCI; } diff --git a/src/add-ons/kernel/bus_managers/ps2/ps2_service.cpp b/src/add-ons/kernel/bus_managers/ps2/ps2_service.cpp index 162c121f26..1bf5ed3299 100644 --- a/src/add-ons/kernel/bus_managers/ps2/ps2_service.cpp +++ b/src/add-ons/kernel/bus_managers/ps2/ps2_service.cpp @@ -194,5 +194,9 @@ ps2_service_exit(void) wait_for_thread(sServiceThread, NULL); delete_sem(sServiceSem); delete_packet_buffer(sServiceCmdBuffer); + +#ifdef DEBUG_PUBLISHING + remove_debugger_command("ps2republish", &ps2_republish); +#endif TRACE("ps2: ps2_service_exit done\n"); } diff --git a/src/add-ons/media/media-add-ons/mixer/MixerInput.cpp b/src/add-ons/media/media-add-ons/mixer/MixerInput.cpp index ec4126516d..5bb5085f61 100644 --- a/src/add-ons/media/media-add-ons/mixer/MixerInput.cpp +++ b/src/add-ons/media/media-add-ons/mixer/MixerInput.cpp @@ -153,7 +153,7 @@ MixerInput::BufferReceived(BBuffer* buffer) start, offset); int in_frames = size / bytes_per_frame(fInput.format.u.raw_audio); - double frames = double(in_frames * fMixBufferFrameRate) + double frames = ((double)in_frames * fMixBufferFrameRate) / fInput.format.u.raw_audio.frame_rate; int out_frames = int(frames); fFractionalFrames += frames - double(out_frames); diff --git a/src/add-ons/media/media-add-ons/multi_audio/Jamfile b/src/add-ons/media/media-add-ons/multi_audio/Jamfile index 7f116b7fdd..ab539cba5c 100644 --- a/src/add-ons/media/media-add-ons/multi_audio/Jamfile +++ b/src/add-ons/media/media-add-ons/multi_audio/Jamfile @@ -8,6 +8,8 @@ if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) { SubDirC++Flags -fmultiple-symbol-spaces ; } +AddResources hmulti_audio.media_addon : MultiAudio.rdef ; + Addon hmulti_audio.media_addon : MultiAudioAddOn.cpp MultiAudioDevice.cpp @@ -15,10 +17,16 @@ Addon hmulti_audio.media_addon : MultiAudioUtility.cpp Resampler.cpp TimeComputer.cpp - : be media $(TARGET_LIBSUPC++) + : be media $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) ; Package haiku-multi_audio-cvs : hmulti_audio.media_addon : boot home config add-ons media ; +DoCatalogs hmulti_audio.media_addon + : + x-vnd.Haiku-hmulti_audio.media_addon + : + MultiAudioNode.cpp + ; diff --git a/src/add-ons/media/media-add-ons/multi_audio/MultiAudio.rdef b/src/add-ons/media/media-add-ons/multi_audio/MultiAudio.rdef new file mode 100644 index 0000000000..c6722d2c60 --- /dev/null +++ b/src/add-ons/media/media-add-ons/multi_audio/MultiAudio.rdef @@ -0,0 +1,15 @@ +/* + * MultiAudio.rdef + */ + +resource app_signature "application/x-vnd.Haiku-hmulti_audio.media_addon"; + +resource app_version { + major = 1, + middle = 0, + minor = 0, + variety = 0, + internal = 0, + short_info = "1.0.0", + long_info = "Haiku MultiAudio media add-on." +}; diff --git a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp index d417a88cbb..ffac270c82 100644 --- a/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp +++ b/src/add-ons/media/media-add-ons/multi_audio/MultiAudioNode.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -26,6 +27,8 @@ #include "debug.h" #include "Resampler.h" +#undef B_TRANSLATION_CONTEXT +#define B_TRANSLATION_CONTEXT "MultiAudio" #define PARAMETER_ID_INPUT_FREQUENCY 1 #define PARAMETER_ID_OUTPUT_FREQUENCY 2 @@ -103,10 +106,18 @@ static const sample_rate_info kSampleRateInfos[] = { const char* kMultiControlString[] = { "NAME IS ATTACHED", - "Output", "Input", "Setup", "Tone Control", "Extended Setup", "Enhanced Setup", "Master", - "Beep", "Phone", "Mic", "Line", "CD", "Video", "Aux", "Wave", "Gain", "Level", "Volume", - "Mute", "Enable", "Stereo Mix", "Mono Mix", "Output Stereo Mix", "Output Mono Mix", "Output Bass", - "Output Treble", "Output 3D Center", "Output 3D Depth", "Headphones", "SPDIF" + B_TRANSLATE("Output"), B_TRANSLATE("Input"), B_TRANSLATE("Setup"), + B_TRANSLATE("Tone control"), B_TRANSLATE("Extended Setup"), + B_TRANSLATE("Enhanced Setup"), B_TRANSLATE("Master"), B_TRANSLATE("Beep"), + B_TRANSLATE("Phone"), B_TRANSLATE("Mic"), B_TRANSLATE("Line"), + B_TRANSLATE("CD"), B_TRANSLATE("Video"), B_TRANSLATE("Aux"), + B_TRANSLATE("Wave"), B_TRANSLATE("Gain"), B_TRANSLATE("Level"), + B_TRANSLATE("Volume"), B_TRANSLATE("Mute"), B_TRANSLATE("Enable"), + B_TRANSLATE("Stereo mix"), B_TRANSLATE("Mono mix"), + B_TRANSLATE("Output stereo mix"), B_TRANSLATE("Output mono mix"), + B_TRANSLATE("Output bass"), B_TRANSLATE("Output treble"), + B_TRANSLATE("Output 3D center"), B_TRANSLATE("Output 3D depth"), + B_TRANSLATE("Headphones"), B_TRANSLATE("SPDIF") }; @@ -1579,17 +1590,17 @@ MultiAudioNode::MakeParameterWeb() PRINT(("MixControlInfo().control_count : %li\n", fDevice->MixControlInfo().control_count)); - BParameterGroup* generalGroup = web->MakeGroup("General"); + BParameterGroup* generalGroup = web->MakeGroup(B_TRANSLATE("General")); const multi_description& description = fDevice->Description(); if (description.output_rates & B_SR_SAME_AS_INPUT) { - _CreateFrequencyParameterGroup(generalGroup, "Input & Output", + _CreateFrequencyParameterGroup(generalGroup, B_TRANSLATE("Input & Output"), PARAMETER_ID_INPUT_FREQUENCY, description.input_rates); } else { - _CreateFrequencyParameterGroup(generalGroup, "Input", + _CreateFrequencyParameterGroup(generalGroup, B_TRANSLATE("Input"), PARAMETER_ID_INPUT_FREQUENCY, description.input_rates); - _CreateFrequencyParameterGroup(generalGroup, "Output", + _CreateFrequencyParameterGroup(generalGroup, B_TRANSLATE("Output"), PARAMETER_ID_OUTPUT_FREQUENCY, description.output_rates); } @@ -1719,7 +1730,7 @@ MultiAudioNode::_CreateFrequencyParameterGroup(BParameterGroup* parentGroup, { BParameterGroup* group = parentGroup->MakeGroup(name); BDiscreteParameter* frequencyParam = group->MakeDiscreteParameter( - parameterID, B_MEDIA_NO_TYPE, BString(name) << " Frequency:", + parameterID, B_MEDIA_NO_TYPE, BString(name) << B_TRANSLATE(" frequency:"), B_GENERIC); for (int32 i = 0; kSampleRateInfos[i].name != NULL; i++) { diff --git a/src/apps/showimage/ShowImageWindow.cpp b/src/apps/showimage/ShowImageWindow.cpp index 687be6ce9b..85d4f3cba3 100644 --- a/src/apps/showimage/ShowImageWindow.cpp +++ b/src/apps/showimage/ShowImageWindow.cpp @@ -1107,7 +1107,7 @@ ShowImageWindow::_LoadError(const entry_ref& ref) "file or an image translator for it does not exist.", "LoadAlerts"), B_TRANSLATE_CONTEXT("OK", "Alerts"), NULL, NULL, - B_WIDTH_AS_USUAL, B_INFO_ALERT); + B_WIDTH_AS_USUAL, B_STOP_ALERT); alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE); alert->Go(); } diff --git a/src/apps/stylededit/StatusView.cpp b/src/apps/stylededit/StatusView.cpp index edd3d9878e..a6bdfccf76 100644 --- a/src/apps/stylededit/StatusView.cpp +++ b/src/apps/stylededit/StatusView.cpp @@ -26,6 +26,7 @@ #include #include "Constants.h" +#include "StyledEditWindow.h" const float kHorzSpacing = 5.f; @@ -158,16 +159,24 @@ StatusView::MouseDown(BPoint where) if (!fReadOnly) return; - float left = fCellWidth[kPositionCell] + fCellWidth[kEncodingCell]; - if (where.x < left) + if (where.x < fCellWidth[kPositionCell]) return; - where.x = left; - where.y = Bounds().bottom; + int32 clicks = 0; + BMessage* message = Window()->CurrentMessage(); + if (message != NULL + && message->FindInt32("clicks", &clicks) == B_OK && clicks > 1) + return; BPopUpMenu *menu = new BPopUpMenu(B_EMPTY_STRING, false, false); - menu->AddItem(new BMenuItem(B_TRANSLATE("Unlock file"), - new BMessage(UNLOCK_FILE))); + float left = fCellWidth[kPositionCell] + fCellWidth[kEncodingCell]; + if (where.x < left) + StyledEditWindow::PopulateEncodingMenu(menu, fEncoding); + else + menu->AddItem(new BMenuItem(B_TRANSLATE("Unlock file"), + new BMessage(UNLOCK_FILE))); + where.x = left; + where.y = Bounds().bottom; ConvertToScreen(&where); menu->SetTargetForItems(this); @@ -188,20 +197,21 @@ StatusView::SetStatus(BMessage* message) fCellText[kPositionCell].SetTo(info); } - BString encoding; - if (B_OK == message->FindString("encoding", &encoding)) { + if (B_OK == message->FindString("encoding", &fEncoding)) { // sometime corresponding Int-32 "encoding" attrib is read as string :( - if (encoding.Length() == 0 - || encoding.Compare("\xff\xff") == 0 - || encoding.Compare("UTF-8") == 0) + if (fEncoding.Length() == 0 + || fEncoding.Compare("\xff\xff") == 0 + || fEncoding.Compare("UTF-8") == 0) { fCellText[kEncodingCell] = "UTF-8"; + fEncoding.Truncate(0); } else { const BCharacterSet* charset - = BCharacterSetRoster::FindCharacterSetByName(encoding); + = BCharacterSetRoster::FindCharacterSetByName(fEncoding); fCellText[kEncodingCell] = charset != NULL ? charset->GetPrintName() : ""; } + fCellText[kEncodingCell] << " " UTF8_EXPAND_ARROW; } bool modified = false; @@ -233,7 +243,7 @@ StatusView::_ValidatePreferredSize() float width = ceilf(StringWidth(fCellText[i])); if (width > 0) width += kHorzSpacing * 2; - if (width > fCellWidth[i]) + if (width > fCellWidth[i] || i != kPositionCell) fCellWidth[i] = width; fPreferredSize.width += fCellWidth[i]; } diff --git a/src/apps/stylededit/StatusView.h b/src/apps/stylededit/StatusView.h index fcf542f303..80f92b5606 100644 --- a/src/apps/stylededit/StatusView.h +++ b/src/apps/stylededit/StatusView.h @@ -45,6 +45,7 @@ private: BString fCellText[kStatusCellCount]; float fCellWidth[kStatusCellCount]; bool fReadOnly; + BString fEncoding; }; #endif // STATUS_VIEW_H diff --git a/src/apps/stylededit/StyledEditWindow.cpp b/src/apps/stylededit/StyledEditWindow.cpp index 9e08d4f5ad..03b79a35a1 100644 --- a/src/apps/stylededit/StyledEditWindow.cpp +++ b/src/apps/stylededit/StyledEditWindow.cpp @@ -287,8 +287,8 @@ StyledEditWindow::MessageReceived(BMessage* message) case MSG_REPLACE_ALL: { message->FindBool("casesens", &fCaseSensitive); - message->FindString("FindText",&fStringToFind); - message->FindString("ReplaceText",&fReplaceString); + message->FindString("FindText", &fStringToFind); + message->FindString("ReplaceText", &fReplaceString); bool allWindows; message->FindBool("allwindows", &allWindows); @@ -1291,7 +1291,11 @@ StyledEditWindow::_InitWindow(uint32 encoding) fWrapItem->SetMarked(true); fWrapItem->SetShortcut('W', B_OPTION_KEY); - menu->AddItem(fEncodingItem = _MakeEncodingMenuItem()); + BMessage *message = new BMessage(MENU_RELOAD); + message->AddString("encoding", "auto"); + menu->AddItem(fEncodingItem = new BMenuItem(PopulateEncodingMenu( + new BMenu(B_TRANSLATE("Text encoding")), "UTF-8"), + message)); fEncodingItem->SetEnabled(false); menu->AddSeparatorItem(); @@ -1564,7 +1568,7 @@ StyledEditWindow::_UnlockFile() status_t status = dir.InitCheck(); if (status != B_OK) return status; - + status = entry.InitCheck(); if (status != B_OK) return status; @@ -1578,7 +1582,7 @@ StyledEditWindow::_UnlockFile() status = file.GetStat(&st); if (status != B_OK) return status; - + st.st_mode |= S_IWUSR; status = file.SetPermissions(st.st_mode); if (status == B_OK) @@ -1882,10 +1886,13 @@ StyledEditWindow::_ShowAlert(const BString& text, const BString& label, } -BMenuItem* -StyledEditWindow::_MakeEncodingMenuItem() +BMenu* +StyledEditWindow::PopulateEncodingMenu(BMenu* menu, const char* currentEncoding) { - BMenu* menu = new BMenu(B_TRANSLATE("Text encoding")); + menu->SetRadioMode(true); + BString encoding(currentEncoding); + if (encoding.Length() == 0) + encoding.SetTo("UTF-8"); BCharacterSetRoster roster; BCharacterSet charset; @@ -1899,7 +1906,10 @@ StyledEditWindow::_MakeEncodingMenuItem() BMessage *message = new BMessage(MENU_RELOAD); if (message != NULL) { message->AddString("encoding", charset.GetName()); - menu->AddItem(new BMenuItem(name, message)); + BMenuItem* item = new BMenuItem(name, message); + if (encoding.Compare(charset.GetName()) == 0) + item->SetMarked(true); + menu->AddItem(item); } } @@ -1908,9 +1918,7 @@ StyledEditWindow::_MakeEncodingMenuItem() message->AddString("encoding", "auto"); menu->AddItem(new BMenuItem(B_TRANSLATE("Autodetect"), message)); - menu->SetRadioMode(true); - - return new BMenuItem(menu, new BMessage(MENU_RELOAD)); + return menu; } diff --git a/src/apps/stylededit/StyledEditWindow.h b/src/apps/stylededit/StyledEditWindow.h index ae8aac3efa..af8dc04f4b 100644 --- a/src/apps/stylededit/StyledEditWindow.h +++ b/src/apps/stylededit/StyledEditWindow.h @@ -49,9 +49,10 @@ public: bool caseSensitive); bool IsDocumentEntryRef(const entry_ref* ref); + static BMenu* PopulateEncodingMenu(BMenu* menu, + const char* encoding); private: void _InitWindow(uint32 encoding = 0); - BMenuItem* _MakeEncodingMenuItem(); void _LoadAttrs(); void _SaveAttrs(); status_t _LoadFile(entry_ref* ref, diff --git a/src/kits/interface/Font.cpp b/src/kits/interface/Font.cpp index 5e66b8a434..d9a3003cdb 100644 --- a/src/kits/interface/Font.cpp +++ b/src/kits/interface/Font.cpp @@ -384,20 +384,13 @@ status_t set_font_cache_info(uint32 id, void *set) } -/*! - \brief Private function used to replace the R5 hack which sets a system font - \param which string denoting which font to set - \param family the new family for the system font - \param style the new style for the system font - \param size the size for the system font to have - - R5 used a global area offset table to set the system fonts in the Font - preferences panel. Bleah. -*/ +// Private function used to replace the R5 hack which sets a system font void _set_system_font_(const char *which, font_family family, font_style style, float size) { + // R5 used a global area offset table to set the system fonts in the Font + // preferences panel. Bleah. BPrivate::AppServerLink link; link.StartMessage(AS_SET_SYSTEM_FONT); @@ -430,10 +423,7 @@ _get_system_default_font_(const char* which, font_family family, } -/*! - \brief Returns the number of installed font families - \return The number of installed font families -*/ +// Returns the number of installed font families int32 count_font_families() { @@ -441,10 +431,7 @@ count_font_families() } -/*! - \brief Returns the number of styles available for a font family - \return The number of styles available for a font family -*/ +// Returns the number of styles available for a font family int32 count_font_styles(font_family family) { @@ -452,14 +439,7 @@ count_font_styles(font_family family) } -/*! - \brief Retrieves the family name at the specified index - \param index Unique font identifier code. - \param name font_family string to receive the name of the family - \param flags if non-NULL, the values of the flags IS_FIXED and - B_HAS_TUNED_FONT are returned - \return B_ERROR if the index does not correspond to a font family -*/ +// Retrieves the family name at the specified index status_t get_font_family(int32 index, font_family *_name, uint32 *_flags) { @@ -470,14 +450,7 @@ get_font_family(int32 index, font_family *_name, uint32 *_flags) } -/*! - \brief Retrieves the family name at the specified index - \param index Unique font identifier code. - \param name font_family string to receive the name of the family - \param flags if non-NULL, the values of the flags IS_FIXED and - B_HAS_TUNED_FONT are returned - \return B_ERROR if the index does not correspond to a font style -*/ +// Retrieves the family name at the specified index status_t get_font_style(font_family family, int32 index, font_style *_name, uint32 *_flags) @@ -486,23 +459,15 @@ get_font_style(font_family family, int32 index, font_style *_name, } -/*! - \brief Retrieves the family name at the specified index - \param index Unique font identifier code. - \param name font_family string to receive the name of the family - \param face recipient of font face value, such as B_REGULAR_FACE - \param flags if non-NULL, the values of the flags IS_FIXED and - B_HAS_TUNED_FONT are returned - \return B_ERROR if the index does not correspond to a font style - - The face value returned by this function is not very reliable. At the same - time, the value returned should be fairly reliable, returning the proper - flag for 90%-99% of font names. -*/ +// Retrieves the family name at the specified index status_t get_font_style(font_family family, int32 index, font_style *_name, uint16 *_face, uint32 *_flags) { + // The face value returned by this function is not very reliable. At the + // same time, the value returned should be fairly reliable, returning the + // proper flag for 90%-99% of font names. + if (_name == NULL) return B_BAD_VALUE; @@ -510,11 +475,7 @@ get_font_style(font_family family, int32 index, font_style *_name, } -/*! - \brief Updates the font family list - \param checkOnly is ignored - \return true if the font list has changed, false if not. -*/ +// Updates the font family list bool update_font_families(bool /*checkOnly*/) { @@ -558,19 +519,14 @@ BFont::BFont(const BFont &font) BFont::BFont(const BFont *font) { - if (font) + if (font != NULL) *this = *font; else *this = *be_plain_font; } -/*! - \brief Sets the font's family and style all at once - \param family Font family to set - \param style Font style to set - \return B_NAME_NOT_FOUND if family or style do not exist. -*/ +// Sets the font's family and style all at once status_t BFont::SetFamilyAndStyle(const font_family family, const font_style style) { @@ -587,8 +543,7 @@ BFont::SetFamilyAndStyle(const font_family family, const font_style style) link.Attach(fFace); int32 status = B_ERROR; - if (link.FlushWithReply(status) != B_OK - || status != B_OK) + if (link.FlushWithReply(status) != B_OK || status != B_OK) return status; link.Read(&fFamilyID); @@ -601,12 +556,9 @@ BFont::SetFamilyAndStyle(const font_family family, const font_style style) } -/*! - \brief Sets the font's family and style all at once - \param code Unique font identifier obtained from the server. -*/ +// Sets the font's family and style all at once void -BFont::SetFamilyAndStyle(uint32 fontcode) +BFont::SetFamilyAndStyle(uint32 code) { // R5 has a bug here: the face is not updated even though the IDs are set. // This is a problem because the face flag includes Regular/Bold/Italic @@ -615,8 +567,8 @@ BFont::SetFamilyAndStyle(uint32 fontcode) // than R5's in order to be correct uint16 family, style; - style = fontcode & 0xFFFF; - family = (fontcode & 0xFFFF0000) >> 16; + style = code & 0xFFFF; + family = (code & 0xFFFF0000) >> 16; BPrivate::AppServerLink link; link.StartMessage(AS_GET_FAMILY_AND_STYLE_IDS); @@ -626,9 +578,8 @@ BFont::SetFamilyAndStyle(uint32 fontcode) link.Attach(style); link.Attach(fFace); - int32 code; - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + int32 fontcode; + if (link.FlushWithReply(fontcode) != B_OK || fontcode != B_OK) return; link.Read(&fFamilyID); @@ -639,20 +590,15 @@ BFont::SetFamilyAndStyle(uint32 fontcode) } -/*! - \brief Sets the font's family and face all at once - \param family Font family to set - \param face Font face to set. - \return B_ERROR if family does not exists or face is an invalid value. - - To comply with the BeBook, this function will only set valid values - i.e. - passing a nonexistent family will cause only the face to be set. - Additionally, if a particular face does not exist in a family, the closest - match will be chosen. -*/ +// Sets the font's family and face all at once status_t BFont::SetFamilyAndFace(const font_family family, uint16 face) { + // To comply with the BeBook, this function will only set valid values + // i.e. passing a nonexistent family will cause only the face to be set. + // Additionally, if a particular face does not exist in a family, the + // closest match will be chosen. + BPrivate::AppServerLink link; link.StartMessage(AS_GET_FAMILY_AND_STYLE_IDS); link.AttachString(family, sizeof(font_family)); @@ -662,8 +608,7 @@ BFont::SetFamilyAndFace(const font_family family, uint16 face) link.Attach(face); int32 status = B_ERROR; - if (link.FlushWithReply(status) != B_OK - || status != B_OK) + if (link.FlushWithReply(status) != B_OK || status != B_OK) return status; link.Read(&fFamilyID); @@ -760,8 +705,7 @@ BFont::GetFamilyAndStyle(font_family *family, font_style *style) const link.Attach(fStyleID); int32 code; - if (link.FlushWithReply(code) != B_OK - || code != B_OK) { + if (link.FlushWithReply(code) != B_OK || code != B_OK) { // the least we can do is to clear the buffers memset(*family, 0, sizeof(font_family)); memset(*style, 0, sizeof(font_style)); @@ -852,16 +796,14 @@ BFont::IsFixed() const } -/*! - \brief Returns true if the font is fixed-width and contains both full - and half-width characters - - This was left unimplemented as of R5. It was a way to work with both - Kanji and Roman characters in the same fixed-width font. -*/ +// Returns whether or not the font is fixed-width and contains both +// full and half-width characters. bool BFont::IsFullAndHalfFixed() const { + // This was left unimplemented as of R5. It is a way to work with both + // Kanji and Roman characters in the same fixed-width font. + _GetExtraFlags(); return (fExtraFlags & B_PRIVATE_FONT_IS_FULL_AND_HALF_FIXED) != 0; } @@ -938,7 +880,7 @@ BFont::CountTuned() const void BFont::GetTunedInfo(int32 index, tuned_font_info *info) const { - if (!info) + if (info == NULL) return; BPrivate::AppServerLink link; @@ -948,8 +890,7 @@ BFont::GetTunedInfo(int32 index, tuned_font_info *info) const link.Attach(index); int32 code; - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(info); @@ -1013,7 +954,7 @@ BFont::GetTruncatedStrings(const char *stringArray[], int32 numStrings, float BFont::StringWidth(const char *string) const { - if (!string) + if (string == NULL) return 0.0; int32 length = strlen(string); @@ -1041,8 +982,10 @@ void BFont::GetStringWidths(const char *stringArray[], const int32 lengthArray[], int32 numStrings, float widthArray[]) const { - if (!stringArray || !lengthArray || numStrings < 1 || !widthArray) + if (stringArray == NULL || lengthArray == NULL || numStrings < 1 + || widthArray == NULL) { return; + } BPrivate::AppServerLink link; link.StartMessage(AS_GET_STRING_WIDTHS); @@ -1053,15 +996,13 @@ BFont::GetStringWidths(const char *stringArray[], const int32 lengthArray[], link.Attach(numStrings); // TODO: all strings into a single array??? - // we do have a maximum message length, and it could be easily touched - // here... - for (int32 i = 0; i < numStrings; i++) { + // we do have a maximum message length, and it could be easily touched + // here... + for (int32 i = 0; i < numStrings; i++) link.AttachString(stringArray[i], lengthArray[i]); - } status_t status; - if (link.FlushWithReply(status) != B_OK - || status != B_OK) + if (link.FlushWithReply(status) != B_OK || status != B_OK) return; link.Read(widthArray, sizeof(float) * numStrings); @@ -1080,7 +1021,7 @@ void BFont::GetEscapements(const char charArray[], int32 numChars, escapement_delta *delta, float escapementArray[]) const { - if (!charArray || numChars < 1 || !escapementArray) + if (charArray == NULL || numChars < 1 || escapementArray == NULL) return; BPrivate::AppServerLink link; @@ -1102,8 +1043,7 @@ BFont::GetEscapements(const char charArray[], int32 numChars, link.Attach(charArray, bytesInBuffer); int32 code; - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(escapementArray, numChars * sizeof(float)); @@ -1123,7 +1063,7 @@ BFont::GetEscapements(const char charArray[], int32 numChars, escapement_delta *delta, BPoint escapementArray[], BPoint offsetArray[]) const { - if (!charArray || numChars < 1 || !escapementArray) + if (charArray == NULL || numChars < 1 || escapementArray == NULL) return; BPrivate::AppServerLink link; @@ -1146,8 +1086,7 @@ BFont::GetEscapements(const char charArray[], int32 numChars, link.Attach(charArray, bytesInBuffer); int32 code; - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(escapementArray, sizeof(BPoint) * numChars); @@ -1175,8 +1114,7 @@ BFont::GetEdges(const char charArray[], int32 numChars, link.Attach(bytesInBuffer); link.Attach(charArray, bytesInBuffer); - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(edgeArray, sizeof(edge_info) * numChars); @@ -1199,8 +1137,7 @@ BFont::GetHeight(font_height *_height) const link.Attach(fSize); int32 code; - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; // Who put that "const" to this method? :-) @@ -1217,8 +1154,8 @@ void BFont::GetBoundingBoxesAsGlyphs(const char charArray[], int32 numChars, font_metric_mode mode, BRect boundingBoxArray[]) const { - _GetBoundingBoxes(charArray, numChars, mode, false, NULL, boundingBoxArray, - false); + _GetBoundingBoxes(charArray, numChars, mode, false, NULL, + boundingBoxArray, false); } @@ -1227,8 +1164,8 @@ BFont::GetBoundingBoxesAsString(const char charArray[], int32 numChars, font_metric_mode mode, escapement_delta *delta, BRect boundingBoxArray[]) const { - _GetBoundingBoxes(charArray, numChars, mode, true, delta, boundingBoxArray, - true); + _GetBoundingBoxes(charArray, numChars, mode, true, delta, + boundingBoxArray, true); } @@ -1237,7 +1174,7 @@ BFont::_GetBoundingBoxes(const char charArray[], int32 numChars, font_metric_mode mode, bool string_escapement, escapement_delta *delta, BRect boundingBoxArray[], bool asString) const { - if (!charArray || numChars < 1 || !boundingBoxArray) + if (charArray == NULL || numChars < 1 || boundingBoxArray == NULL) return; int32 code; @@ -1257,7 +1194,7 @@ BFont::_GetBoundingBoxes(const char charArray[], int32 numChars, link.Attach(mode); link.Attach(string_escapement); - if (delta) { + if (delta != NULL) { link.Attach(*delta); } else { escapement_delta emptyDelta = {0, 0}; @@ -1269,8 +1206,7 @@ BFont::_GetBoundingBoxes(const char charArray[], int32 numChars, link.Attach(bytesInBuffer); link.Attach(charArray, bytesInBuffer); - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(boundingBoxArray, sizeof(BRect) * numChars); @@ -1314,8 +1250,7 @@ BFont::GetBoundingBoxesForStrings(const char *stringArray[], int32 numStrings, } } - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(boundingBoxArray, sizeof(BRect) * numStrings); @@ -1348,8 +1283,7 @@ BFont::GetGlyphShapes(const char charArray[], int32 numChars, link.Attach(bytesInBuffer); link.Attach(charArray, bytesInBuffer); - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; for (int32 i = 0; i < numChars; i++) @@ -1376,8 +1310,7 @@ BFont::GetHasGlyphs(const char charArray[], int32 numChars, link.Attach(bytesInBuffer); link.Attach(charArray, bytesInBuffer); - if (link.FlushWithReply(code) != B_OK - || code != B_OK) + if (link.FlushWithReply(code) != B_OK || code != B_OK) return; link.Read(hasArray, sizeof(bool) * numChars); @@ -1461,8 +1394,7 @@ BFont::_GetExtraFlags() const link.Attach(fStyleID); status_t status = B_ERROR; - if (link.FlushWithReply(status) != B_OK - || status != B_OK) { + if (link.FlushWithReply(status) != B_OK || status != B_OK) { // use defaut values for the flags fExtraFlags = (uint32)B_FONT_LEFT_TO_RIGHT << B_PRIVATE_FONT_DIRECTION_SHIFT; @@ -1471,4 +1403,3 @@ BFont::_GetExtraFlags() const link.Read(&fExtraFlags); } - diff --git a/src/kits/interface/ListView.cpp b/src/kits/interface/ListView.cpp index 54a1259513..31591b79fa 100644 --- a/src/kits/interface/ListView.cpp +++ b/src/kits/interface/ListView.cpp @@ -732,7 +732,7 @@ BListView::AddList(BList* list, int32 index) if (!fList.AddList(list, index)) return false; - int32 count = fList.CountItems(); + int32 count = list->CountItems(); if (fFirstSelected != -1 && index < fFirstSelected) fFirstSelected += count; @@ -744,12 +744,12 @@ BListView::AddList(BList* list, int32 index) BFont font; GetFont(&font); - for (int32 i = index; i <= (index + list->CountItems() - 1); i++) { + for (int32 i = index; i <= (index + count - 1); i++) { ItemAt(i)->SetTop((i > 0) ? ItemAt(i - 1)->Bottom() + 1.0 : 0.0); ItemAt(i)->Update(this, &font); } - _RecalcItemTops(index + list->CountItems() - 1); + _RecalcItemTops(index + count - 1); _FixupScrollBar(); Invalidate(); // TODO diff --git a/src/kits/translation/BitmapStream.cpp b/src/kits/translation/BitmapStream.cpp index db2572f62f..9bc9634d17 100644 --- a/src/kits/translation/BitmapStream.cpp +++ b/src/kits/translation/BitmapStream.cpp @@ -18,13 +18,9 @@ #include -/*! Initializes this object to either use the BBitmap passed to - it as the object to read/write to or to create a BBitmap - when data is written to this object. - - \param bitmap the bitmap used to read from/write to, if it is NULL, a - bitmap is created when this object is written to. -*/ +// Initializes this object to either use the BBitmap passed to +// it as the object to read/write to or to create a BBitmap +// when data is written to this object. BBitmapStream::BBitmapStream(BBitmap* bitmap) { fBitmap = bitmap; @@ -65,16 +61,7 @@ BBitmapStream::~BBitmapStream() } -/*! Reads data from the stream at a specific position and for a - specific amount. The first sizeof(TranslatorBitmap) bytes - are the bitmap header. The header is always written out - and read in as Big Endian byte order. - - \param pos, the position in the stream to read from buffer, where the data - will be read into size, the amount of data to read - \return B_ERROR if there is no bitmap stored by the stream, B_BAD_VALUE if - buffer is NULL or pos is invalid or the amount read if the result >= 0 -*/ +// Reads data from the stream at a specific position and size. ssize_t BBitmapStream::ReadAt(off_t pos, void* buffer, size_t size) { @@ -104,19 +91,7 @@ BBitmapStream::ReadAt(off_t pos, void* buffer, size_t size) } -/*! Writes data to the bitmap from data, starting at position pos - of size, size. The first sizeof(TranslatorBitmap) bytes - of data must be the TranslatorBitmap header in the Big - Endian byte order, otherwise, the data will fail to be - successfully written. - - \param pos, the position in the stream to write to data, the data to write - to the stream size, the size of the data to write to the stream - \return B_BAD_VALUE if size is bad or data is NULL or pos is invalid, - B_MISMATCHED_VALUES if the bitmap header is bad, - B_ERROR if error allocating memory or setting up big endian header, - or the amount written if the result is >= 0 -*/ +// Writes data to the bitmap starting at a specific position and size. ssize_t BBitmapStream::WriteAt(off_t pos, const void* data, size_t size) { @@ -198,16 +173,7 @@ BBitmapStream::WriteAt(off_t pos, const void* data, size_t size) } -/*! Changes the current stream position. - - \param position the position offset - \param seekMode decides how the position offset is used: - SEEK_CUR, position is added to current stream position - SEEK_END, position is added to the end stream position - SEEK_SET, the stream position is set to position - \return B_BAD_VALUE if the position is bad or the new position value if the - result >= 0 -*/ +// Changes the current stream position. off_t BBitmapStream::Seek(off_t position, uint32 seekMode) { @@ -226,8 +192,7 @@ BBitmapStream::Seek(off_t position, uint32 seekMode) } -/*! Returns the current stream position -*/ +// Returns the current stream position off_t BBitmapStream::Position() const { @@ -236,8 +201,7 @@ BBitmapStream::Position() const -/*! Returns the curren stream size -*/ +// Returns the current stream size off_t BBitmapStream::Size() const { @@ -245,13 +209,8 @@ BBitmapStream::Size() const } -/*! Sets the size of the data, but I'm not sure if this function has any real - purpose. - - \param size the size to set the stream size to. - \return B_BAD_VALUE, if size is a bad value, B_NO_ERROR, if size is a - valid value -*/ +// Sets the size of the data. +// I'm not sure if this method has any real purpose. status_t BBitmapStream::SetSize(off_t size) { @@ -272,16 +231,7 @@ BBitmapStream::SetSize(off_t size) } -/*! Returns the internal bitmap through outBitmap so the user - can do whatever they want to it. It means that when the - BBitmapStream is deleted, the bitmap is not deleted. After - the bitmap has been detached, it is still used by the stream, - but it is never deleted by the stream. - - \param _bitmap where the bitmap is detached to - \return B_BAD_VALUE, if outBitmap is NULL, B_ERROR, if the bitmap is NULL or - has already been detached, B_OK, if the bitmap was successfully detached -*/ +// Sets _bitmap to point to the internal bitmap object. status_t BBitmapStream::DetachBitmap(BBitmap** _bitmap) { @@ -297,12 +247,8 @@ BBitmapStream::DetachBitmap(BBitmap** _bitmap) } -/*! Swaps the byte order of source, no matter what the - byte order, and copies the result to destination - - \param source data to be swapped - \param destination where the swapped data will be copied to -*/ +// Swaps the byte order of source, no matter the byte order, and +// copies the result to destination. void BBitmapStream::SwapHeader(const TranslatorBitmap* source, TranslatorBitmap* destination) diff --git a/src/libs/compat/freebsd_network/mutex.c b/src/libs/compat/freebsd_network/mutex.c index f626b359d9..d7589a8cbe 100644 --- a/src/libs/compat/freebsd_network/mutex.c +++ b/src/libs/compat/freebsd_network/mutex.c @@ -21,7 +21,7 @@ void mtx_init(struct mtx *mutex, const char *name, const char *type, int options) { - if (options & MTX_RECURSE) { + if ((options & MTX_RECURSE) != 0) { recursive_lock_init_etc(&mutex->u.recursive, name, MUTEX_FLAG_CLONE_NAME); } else { @@ -36,7 +36,7 @@ mtx_init(struct mtx *mutex, const char *name, const char *type, void mtx_destroy(struct mtx *mutex) { - if (mutex->type & MTX_RECURSE) + if ((mutex->type & MTX_RECURSE) != 0) recursive_lock_destroy(&mutex->u.recursive); else mutex_destroy(&mutex->u.mutex.lock); diff --git a/src/preferences/backgrounds/BackgroundImage.cpp b/src/preferences/backgrounds/BackgroundImage.cpp index a4b41ec0c2..9c55d8cb4c 100644 --- a/src/preferences/backgrounds/BackgroundImage.cpp +++ b/src/preferences/backgrounds/BackgroundImage.cpp @@ -561,16 +561,15 @@ Image::Image(BPath path) fBitmap(NULL), fPath(path) { - const int32 kMaxWidth = 40; + const int32 kMaxNameChars = 40; fName = path.Leaf(); - int extra = fName.Length() - kMaxWidth; + int extra = fName.CountChars() - kMaxNameChars; if (extra > 0) { + BString extension; int offset = fName.FindLast('.'); - if (offset > 0) { - offset++; - fName.Truncate(offset - extra) << B_UTF8_ELLIPSIS; - fName.Append(path.Leaf() + offset); - } + if (offset > 0) + fName.CopyInto(extension, ++offset, -1); + fName.TruncateChars(kMaxNameChars) << B_UTF8_ELLIPSIS << extension; } } diff --git a/src/preferences/shortcuts/ShortcutsSpec.cpp b/src/preferences/shortcuts/ShortcutsSpec.cpp index 8992de37ac..2fbb513b2e 100644 --- a/src/preferences/shortcuts/ShortcutsSpec.cpp +++ b/src/preferences/shortcuts/ShortcutsSpec.cpp @@ -862,7 +862,7 @@ ShortcutsSpec::_InitModifierNames() "Name for modifier on keyboard"); // TODO: Wrapping in __INTEL__ define probably won't work to extract catkeys? #if __INTEL__ - sOptionName = B_TRANSLATE_COMMENT("Window", + sOptionName = B_TRANSLATE_COMMENT("Option", "Name for modifier on keyboard"); sCommandName = B_TRANSLATE_COMMENT("Alt", "Name for modifier on keyboard"); diff --git a/src/servers/notification/NotificationWindow.cpp b/src/servers/notification/NotificationWindow.cpp index be8e670c1d..068048bee3 100644 --- a/src/servers/notification/NotificationWindow.cpp +++ b/src/servers/notification/NotificationWindow.cpp @@ -104,6 +104,13 @@ NotificationWindow::WorkspaceActivated(int32 /*workspace*/, bool active) } +void +NotificationWindow::FrameResized(float width, float height) +{ + SetPosition(); +} + + void NotificationWindow::MessageReceived(BMessage* message) { diff --git a/src/servers/notification/NotificationWindow.h b/src/servers/notification/NotificationWindow.h index 76dcc83509..2bbde55477 100644 --- a/src/servers/notification/NotificationWindow.h +++ b/src/servers/notification/NotificationWindow.h @@ -44,7 +44,8 @@ public: virtual bool QuitRequested(); virtual void MessageReceived(BMessage*); - virtual void WorkspaceActivated(int32, bool); + virtual void WorkspaceActivated(int32, bool); + virtual void FrameResized(float width, float height); virtual BHandler* ResolveSpecifier(BMessage*, int32, BMessage*, int32, const char*); diff --git a/src/system/libroot/posix/unistd/link.c b/src/system/libroot/posix/unistd/link.c index 491e275c2d..74ab991040 100644 --- a/src/system/libroot/posix/unistd/link.c +++ b/src/system/libroot/posix/unistd/link.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009, Axel Dörfler, axeld@pinc-software.de. + * Copyright 2002-2013, Axel Dörfler, axeld@pinc-software.de. * Distributed under the terms of the MIT License. */ @@ -76,7 +76,12 @@ unlinkat(int fd, const char *path, int flag) int link(const char *toPath, const char *linkPath) { - RETURN_AND_SET_ERRNO(_kern_create_link(-1, linkPath, -1, toPath, true)); + int status = _kern_create_link(-1, linkPath, -1, toPath, true); + // Haiku -> POSIX error mapping + if (status == B_UNSUPPORTED) + status = EPERM; + + RETURN_AND_SET_ERRNO(status); } diff --git a/src/tests/servers/app/playground/Jamfile b/src/tests/servers/app/playground/Jamfile index 327085ddec..552acbdfac 100644 --- a/src/tests/servers/app/playground/Jamfile +++ b/src/tests/servers/app/playground/Jamfile @@ -21,7 +21,7 @@ if ( $(TARGET_PLATFORM) = libbe_test ) { } DoCatalogs Playground : - application/x-vnd.Haiku-Playground + x-vnd.Haiku-Playground : main.cpp ObjectView.cpp