Предисловие
Ваш образ или образ представляемого продукта должен быть запоминающимся. И если вы не знакомы с дизайном, то лучше доверить профессионалам с 4press.com.ua создание фирменного стиля, который будет выгодно отличать вас среди серой массы.
Продолжаем добавлять Conky на рабочий стол. Для отображения компьютеров в сети (или не в сети, как уж повезет) потребуется соответствующая иконка. Чтобы не подгружать ее лишний раз извне, лучше нарисовать ее средствами Lua и Cairo.
Ваш образ или образ представляемого продукта должен быть запоминающимся. И если вы не знакомы с дизайном, то лучше доверить профессионалам с 4press.com.ua создание фирменного стиля, который будет выгодно отличать вас среди серой массы.
Продолжаем добавлять Conky на рабочий стол. Для отображения компьютеров в сети (или не в сети, как уж повезет) потребуется соответствующая иконка. Чтобы не подгружать ее лишний раз извне, лучше нарисовать ее средствами Lua и Cairo.
Вот что получилось:
А теперь немного подробностей.
Файл с настройками самих Conky точно такой же как в предыдущем посте, за исключением названия Lua-скрипта.
Стартовая функция, как обычно:
function conky_startlua()
if conky_window == nil then return end
local cs = cairo_xlib_surface_create(conky_window.display,
conky_window.drawable, conky_window.visual, conky_window.width,
conky_window.height)
cr = cairo_create(cs)
--здесь будут вызовы функци и т.п.
cairo_destroy(cr)
end
Функция, для отрисовки иконки компьютера:
function fSimpleComp(nX, nY, nAlpha, sName, sIP)
где nX, nY - координаты вывода, nAlpha - прозрачность, sName - название и sIP - адрес копьютера в сети.
--рисуем экран монитора
cairo_move_to(cr, nX, nY)
cairo_line_to(cr, nX+50, nY)
cairo_line_to(cr, nX+50, nY+30)
cairo_line_to(cr, nX, nY+30)
cairo_line_to(cr, nX, nY)
cairo_set_source_rgba(cr, fRGBtoARGB(0x000000, nAlpha))
cairo_fill (cr)
--рисуем ножку
cairo_set_source_rgba(cr, fRGBtoARGB(0x000000, nAlpha))
cairo_set_line_width (cr, 15)
cairo_move_to(cr, nX+25, nY+30)
cairo_line_to(cr, nX+25, nY+34)
cairo_stroke(cr)
--рисуем основание
cairo_set_source_rgba(cr, fRGBtoARGB(0x000000, nAlpha))
cairo_set_line_width (cr, 2)
cairo_move_to(cr, nX+10, nY+35)
cairo_line_to(cr, nX+40, nY+35)
cairo_stroke(cr)
--и наконец сам системный блок
cairo_move_to(cr, nX+52, nY)
cairo_line_to(cr, nX+75, nY)
cairo_line_to(cr, nX+75, nY+36)
cairo_line_to(cr, nX+52, nY+36)
cairo_line_to(cr, nX+52, nY)
cairo_set_source_rgba(cr, fRGBtoARGB(0x000000, nAlpha))
cairo_fill (cr)
--а это вывод названия и адреса через соответствующую функцию
fDrawTextCenter (nX+37.5, nY-5, sName, 16, nAlpha)
fDrawTextCenter (nX+37.5, nY+50, sIP, 16, nAlpha)
--и end в конце
end
Функция тоже не представляет особых сложностей. Они начнутся дальше (:
Смотри также

Классное у вас оформление! И я первый раз вижу, чтобы картинку не рисовали, а писали кодом!
ОтветитьУдалитьJohn Spade, спасибо. Это, в принципе, самое простое что можно нарисовать, бывало и посложнее, хотя может и здесь будет. Посмотрим (:
ОтветитьУдалитьramzport отлично, оригинально:)
ОтветитьУдалитьЧертовски здорово!
ОтветитьУдалитьАнонимные, то ли еще будет))
ОтветитьУдалить