January 5th, 2013

GTK+ опять

помаленьку накачиваю программку смыслом. Таперича она умеет сохранять свои нехитрые настройки в файлик, а потом грузить обратно. Вот, думаю, может выебнуться и эти два несчастных параметра обернуть в красивый такой XML, чтоб покучерявее, да посолиднее. Наша высокая наука его пихает везде и всюду (ясное дело, без какой-то необходимости), а я чем хуже? Я ничем не хуже. А ежели сугубо для самообразовательной цели, так ведь это ещё лучше.

Вот.

Заодно изучил наиважнейшую вещь - как виджету заблокировать приём сигнала самому себе (а потом разблокировать), дабы не впадать в пароксизм саморефлексии при попытке самому себе нажать на кнопку, например. То есть - получить результат, а не выпасть в корку. Нет ничего проще, как оказалось.

Заодно вспомнил древний API работы с каталогами - ибо я не знаю других способов узнать, чо у нас из нужных дивайсов в компе есть, кроме как посмотреть в содержимое каталога /dev/ и отфильтровать (тупейшим способом - сравнением строк!) по шаблону. Заодно ещё изобрёл (и щас кто-то будет гыгыкать) ручную уборку мусора. Достопочтимый язык Цэ ведь не умеет убирать мусор, и ежели мы сначала навыделяем памяти, а потом вдруг потеряем на неё ссылку, то быть беде. Вот, собсно, пришлось придумать локальное решение для такой проблемы: сначала динамически составляется список найденных устройств, отображается, а потом... потом виджет удаляется, но он же знать не знает, что нужно тот список-то почистить. Но ничего, нам не привыкать - сделал структуру-коллекцию ссылок на динамически создаваемые объекты и, когда надо их уничтожить, аккуратно прохожу специальной функцией по всем полям этой структуры. Работает, чо. Коряво, по-индийски, но работает. А чтобы потом самому понять, что это за хрень -- оставил в коде комментарии :)

Завтра-послезавтра таки возьмусь (наверное) за работу с терминалом. Придётся вспомнить, как работать с тредами... ничё, полезная практика.

Интересно, можно ли создать окно "без ничего", чтобы у него не было ни заголовка, ни бордюра? Никак не соображу, как попроще сделать такую штуку: при клике на ячейку в многостолбцовом списке (который GTK_CLIST) надо иметь возможность редактировать содержимое ячейки. Т.е. я могу получить данные о том, куда пользователь ткнул мышкой - строка/столбец, что там в ячейке лежит - но чтобы отредактировать содержимое, нужно создать что-то вроде бы однострочного entry. Теоретически, опять же, вполне реально к требуемые ячейки вместо текста сразу entry и запихивать, но как-то это чересчур громоздко...

(no subject)

Приснилось, что я попал на Луну. А там уже есть целый индийский мусорный городок с парикмахерами, портными и карри. Единственное отличие от Земли по ощущениям - низкая гравитация.

(no subject)

Черный камень, найденный в 2011 году в Марокко, демонстрирует свойства, отличающие его от других минералов, попавших на Землю с Марса.

Этот камень получил обозначение NWA-7034, но еще раньше его прозвали "Черной красавицей".

Он имеет вес в 320 г и отличается по текстуре и химическому составу от всех других метеоритов марсианского происхождения, найденных на Земле.


А если его просверлить, то из него полезут чорные червяки.