LINUX.ORG.RU

Добавление своих палитр цветов в gnome-terminal

 ,


0

1

Добрый день. Собственно решил сделать патч к gnome-terminal с несколько своими палитрами цветов, посмотрел исходники и понял что не все так просто). Прошу помощи разовабраться вот с этим куском кода terminal-profile.c:

/* Tango palette */
	{
		{ 0, 0x0000, 0x0000, 0x0000 },
		{ 0, 0xcccc, 0x0000, 0x0000 },
		{ 0, 0x4e4e, 0x9a9a, 0x0606 },
		{ 0, 0xc4c4, 0xa0a0, 0x0000 },
		{ 0, 0x3434, 0x6565, 0xa4a4 },
		{ 0, 0x7575, 0x5050, 0x7b7b },
		{ 0, 0x0606, 0x9820, 0x9a9a },
		{ 0, 0xd3d3, 0xd7d7, 0xcfcf },
		{ 0, 0x5555, 0x5757, 0x5353 },
		{ 0, 0xefef, 0x2929, 0x2929 },
		{ 0, 0x8a8a, 0xe2e2, 0x3434 },
		{ 0, 0xfcfc, 0xe9e9, 0x4f4f },
		{ 0, 0x7272, 0x9f9f, 0xcfcf },
		{ 0, 0xadad, 0x7f7f, 0xa8a8 },
		{ 0, 0x3434, 0xe2e2, 0xe2e2 },
		{ 0, 0xeeee, 0xeeee, 0xecec }
	},
Мне непонятно как этот код преобразовать в цвета, и непонятно как преобразовать цвета в этот код. Заранее очень благодарен.

★★★★
Ответ на: комментарий от BattleCoder

Похоже но «пятой точкой» чувствую что не оно.

xaTa ★★★★
() автор топика
Ответ на: комментарий от xaTa

Второе, третье и четвёртое значение - R, G и B. Каждый байт цвета в значении используется дважды (тип двухбайтовый).

anonymous
()
Ответ на: комментарий от xaTa

Выбираешь цвет который тебе нужен, к примеру тут http://paletton.com (первая ссылка по запросу colors palette), смотришь RGB Hex code, например FFFFFF это белый. Дальше юзаешь функцию gdk_color_parse, она преобразует строку типа #rrggbb в структуру GdkColor. Массив таких структур ты и привел в первоначальном посте.

dima3351
()
Ответ на: комментарий от anonymous

Спасибо товарищ. Вроди дошло до меня.Щас буду пробовать.

xaTa ★★★★
() автор топика
Ответ на: комментарий от dima3351

Спасибо за то что детально разжевал теперь 98% понятно. Непонятно как юзать gdk_color_parse, подскажи пожайлуста, я только учусь.

xaTa ★★★★
() автор топика
Ответ на: комментарий от xaTa

Непонятно как юзать gdk_color_parse, подскажи пожайлуста, я только учусь.

// ...
GdkColor white;
if (!gdk_color_parse("#fff", &white)) {
  // handle error
}
// ...

Вместо "#fff" подставь текстовое представление нужного цвета (стандартное название или шестнадцатеричное значение в форме “#rgb” и её вариациях).

Учись читать документацию.

theNamelessOne ★★★★★
()
Ответ на: комментарий от theNamelessOne

Вместо «#fff» подставь текстовое представление нужного цвета (стандартное название или шестнадцатеричное значение в форме “#rgb” и её вариациях).

То что нужно подставлять свои значения это сразу понял. Я не понял куда вставлять этот кусок кода чтоб он мне конвертировал RGB.

xaTa ★★★★
() автор топика
Ответ на: комментарий от dima3351

В код нужно уже готовые данные вставлять, как я описал выше. А как преобразовать HEX ума не приложу.

xaTa ★★★★
() автор топика
Ответ на: комментарий от xaTa

ну напиши маленькую прогу которая используя gdk_color_parse преобразует тебе HEX в GdkColor, а потом руками в таблицу добавь

dima3351
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.