Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 46

Автор Π­Ρ€ΠΈΠΊ Π Π΅ΠΉΠΌΠΎΠ½Π΄

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ позволяСт ΡΡ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль проСктирования, которая Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто (Π½ΠΎ Π² достаточной стСпСни) ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΊΠΈ тСкстовых Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Как ΠΈ Π² случаС с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -v ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ fetchmail, подобная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ являСтся Π·Π°ΠΏΠΎΠ·Π΄Π°Π»ΠΎΠΉ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, ΠΎΠ½Π° встроСна Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π΅Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΡΡ‚ΡŒ.

6.1.4 Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: kmail

kmail β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом для чтСния ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… сообщСний, распространяСмая Π² составС срСды KDE. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ со вкусом, Ρ…ΠΎΡ€ΠΎΡˆΠΎ спроСктирован ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ автоматичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² MIME-влоТСниях ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ/Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ PGP-ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. GUI-интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ друТСствСнный ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ нСтСхничСских.

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… Π°Π³Π΅Π½Ρ‚Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ шаг Π² сторону воспринимаСмости, встраивая ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ отобраТСния всСх ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ "From" ΠΈ "Subject". ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс kmail Π³ΠΎΡ€Π°Π·Π΄ΠΎ дальшС продвинулся Π² этом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° kmail ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ увСдомлСния ΠΎ состоянии Π² однострочном субокнС Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части основного ΠΎΠΊΠ½Π°, ΠΈΠ½Ρ‹ΠΌΠΈ словами, Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ строкС состояния, явно смодСлированной с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ элСмСнта Netscape/Mozilla. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик, Π² строкС состояния отобраТаСтся ΠΎΠ±Ρ‰Π΅Π΅ количСство сообщСний ΠΈ количСство Π½Π΅ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… сообщСний. ΠŸΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ увСдомлСния Π»Π΅Π³ΠΊΠΎ, Π° Π² случаС нСобходимости ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

ГрафичСский интСрфСйс kmail являСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ конструкции ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Он ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π΅Π½, Π½ΠΎ Π½Π΅ ΠΎΡ‚Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Он ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΈΠ΄Π΅ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… инструмСнтов Unix являСтся Ρ‚ΠΈΡˆΠΈΠ½Π° (см. Π³Π». 11). Авторы продСмонстрировали прСвосходный вкус, заимствовав Π²ΠΈΠ΄ ΠΈ восприятиС строки состояния Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

Однако ΠΌΠ΅Ρ€Π° вкуса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ становится ясна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости поиска нСисправностСй установлСнной систСмы, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΏΠΎΡ‡Ρ‚Ρ‹. Если Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° процСссом ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ каТдая строка SMTP-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΌ сСрвСром ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ выполнСния отобраТаСтся Π² строкС состояния kmail.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ kmail ΡƒΠΌΠ΅Π»ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ, которая часто Π΄Π΅Π»Π°Π΅Ρ‚ GUI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ kmail, источником ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ для спСциалистов ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ нСисправностСй. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ kmail Ρ†Π΅Π»ΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ избавлялись Π±Ρ‹ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… сообщСний, опасаясь, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ нСтСхничСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΠΊ ΠΏΠΎΠΊΠ°Π·Π½ΠΎΠΉ псСвдопростотС Windows.

ВмСсто этого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ kmail ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Они сдСлали сообщСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ создали ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π΅Ρ€Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Π² Ρ„ΠΎΡ€ΠΌΡƒ прСдставлСния, ΠΎΠ½ΠΈ сумСли ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ трСбования ΠΊΠ°ΠΊ нСтСхничСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… спСциалистов Unix. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ блСстящим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Π”Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, разрабатывая Π΄Ρ€ΡƒΠ³ΠΈΠ΅ GUI-интСрфСйсы.

Рис. 6.2. Копия экрана kmail

Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… сообщСний, нСсомнСнно, ΠΏΠΎΠ»Π΅Π·Π½Π° для Π½Π΅ΠΈΡΠΊΡƒΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”Π°Π½Π½Ρ‹Π΅ сообщСния ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈ спСциалистам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ, возникшиС Ρƒ этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π£Ρ€ΠΎΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½. Π—Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс "ΠΌΠΎΠ»Ρ‡Π°Ρ‚ΡŒ" β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ изящноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ изящным Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ способ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подробности доступными, Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… нСнавязчивыми.

6.1.5. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: SNG

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° sng осущСствляСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG Π² Π΅Π³ΠΎ полнотСкстовоС прСдставлСниС (Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ SNG ΠΈΠ»ΠΈ Scriptable Network Graphics) ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π€ΠΎΡ€ΠΌΠ°Ρ‚ SNG ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ с PNG-Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт SNG-Ρ„Π°ΠΉΠ», Π° ΠΏΡ€ΠΈ запускС для SNG-Ρ„Π°ΠΉΠ»Π° ΠΎΠ½Π° восстанавливаСт эквивалСнтный PNG-Ρ„Π°ΠΉΠ». ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ осущСствляСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ, Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΡŒ ΠΈ Π² ΠΎΠ±ΠΎΠΈΡ… направлСниях.

Π‘Ρ‚ΠΈΠ»ΡŒ синтаксиса SNG ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ CSS (Cascading Style Sheets β€” каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй), Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ языку для управлСния прСдставлСниСм Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, шаг Π² сторону ΠΏΡ€Π°Π²ΠΈΠ»Π° наимСньшСй нСоТиданности. НиТС приводится тСстовый ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 6.2. SNG-Ρ„Π°ΠΉΠ»

#SNG: This is a synthetic SNG test file

#(Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ тСстовый SNG-Ρ„Π°ΠΉΠ»)


# Our first test is a paletted (type 3) image.

#(ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ тСст - индСксированноС (Ρ‚ΠΈΠΏ 3) ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.)

IHDR: {

 width: 16;

 height: 19;

 bitdepth: 8;

 using color: palette;

 with interlace;

}


#

# Sample bit depth chunk (Π‘Π»ΠΎΠΊ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Ρ†Π²Π΅Ρ‚Π°)

sBIT: {

 red: 8;

 green: 8;

 blue: 8;

}


# An example palette: three colors, one of which

# we will render transparent

#(ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹: Ρ‚Ρ€ΠΈ Ρ†Π²Π΅Ρ‚Π°, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· #ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выводится ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ)

PLTE: {

 (0, 0, 255)

 (255, 0, 0)

 "dark slate gray",

}

# Suggested palette (РСкомСндованная ΠΏΠ°Π»ΠΈΡ‚Ρ€Π°)

sPLT {

 name: "A random suggested palette";

 depth: 8;

 (0, 0, 255), 255, 7;

 (255, 0, 0), 255, 5;

 ( 70, 70, 70), 255, 3;

}


# The viewer will actually use this

#(ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° просмотра фактичСски

#ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅)...

IMAGE: {

 pixels base64

2222222222222222

2222222222222222

0000001111100000

0000011111110000

0000111001111000

0001110000111100

0001110000111100

0000110001111000

0000000011110000

0000000111100000

0000001111000000

0000001111000000

0000000000000000

0000000110000000

0000001111000000

0000001111000000

0000000110000000

2222222222222222

2222222222222222

}


tEXt: {

 # Ordinary text chunk (ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Π±Π»ΠΎΠΊ)

 keyword: "Title";

 text: "Sample SNG script";

}


# Test file ends here

#(ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ тСстового Ρ„Π°ΠΉΠ»Π°)

ЦСль Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ срСдства β€” ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ нСпонятныС Ρ‚ΠΈΠΏΡ‹ PNG-Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вовсС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ графичСскими Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ. ВмСсто написания спСциализированного ΠΊΠΎΠ΄Π° для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ PNG-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² полнотСкстовоС прСдставлСниС, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Другая ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ прикладная Π·Π°Π΄Π°Ρ‡Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ для систСм контроля вСрсий. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм контроля вСрсий тСкстовыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ большими Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π° diff-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ SNG-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ фактичСски ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ возмоТности для извлСчСния ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… свСдСний.

Однако Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС связан Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Π½Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π° написаниС спСциализированного ΠΊΠΎΠ΄Π° для манипуляций с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ PNG-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ sng Π½Π΅ являСтся ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π² Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… систСмах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, дСлая всС содСрТимоС PNG-Ρ„Π°ΠΉΠ»ΠΎΠ² воспринимаСмым.

6.1.6. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Terminfo

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… terminfo прСдставляСт собой Π½Π°Π±ΠΎΡ€ описаний Π²ΠΈΠ΄Π΅ΠΎΡ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ². Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° экранС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ вставка ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ символов ΠΎΡ‚ курсора Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки ΠΈΠ»ΠΈ экрана, ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ подсвСтки экрана, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ€Ρ†Π°Π½ΠΈΠ΅.

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… terminfo Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ curses(3), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅ΠΆΠ°Ρ‚ Π² основС rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ стиля интСрфСйса, описанного Π² Π³Π»Π°Π²Π΅ 11, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ mutt(1), lynx(1) ΠΈ slrn(1). Π₯отя эмуляторы Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ xterm(1), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° соврСмСнных растровых дисплСях, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ всСми возмоТностями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ возмоТностСй стандарта ANSI X3.64 ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² VT100, сущСствуСт достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΈΡ… разновидностСй Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ², Π³Π΄Π΅ ТСсткая привязка прилоТСния ΠΊ ANSI-возмоТностям Π±Ρ‹Π»Π° Π±Ρ‹ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ. Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… terminfo Ρ‚Π°ΠΊΠΆΠ΅ достойна рассмотрСния, Π²Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, логичСски ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ terminfo, постоянно Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ стандартного способа прСдоставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ собствСнных характСристиках.