Home
mc-dev
mc-dev@conference.jabber.ru
01.05.2011< ^ >

Тема: http://www.midnight-commander.org | Latest stable release: 4.7.5.2
[03:34:10] Зося Синицкая вышел из конференции: Этого участника выгнали из комнаты за то, что он послал присутствие с ошибкой: remote-server-not-found
[04:58:53] Зося Синицкая зашёл в конференцию
[09:04:35] slavazanko/h вышел из конференции
[09:06:09] slavazanko/h зашёл в конференцию
[11:55:29] <slavazanko/h> http://www.midnight-commander.org/wiki/doc/editor/codejump
подправить бы... чтобы открывался ещё один редактор, а не в этом же...
[12:27:37] andrew_b зашёл в конференцию
[12:28:27] <andrew_b> slavazanko/h: о, тебя-то мне и надо.
[12:31:44] <slavazanko/h> ?
[12:35:12] <slavazanko/h> andrew_b: привет. Чем могу быть полезен?
[12:40:53] <slavazanko/h> вот блин... Ладно, дальше кодю...
[12:48:17] slavazanko/h вышел из конференции
[12:49:45] slavazanko/h зашёл в конференцию
[12:56:02] slavazanko/h вышел из конференции
[12:59:09] slavazanko/h зашёл в конференцию
[13:05:07] <andrew_b> slavazanko/h: жрали-с.
[13:05:18] <slavazanko/h> приятного :)
[13:05:25] <andrew_b> Спс.
[13:05:33] <andrew_b> Так вот.
[13:05:45] <andrew_b> Такая задача.
[13:06:14] <andrew_b> Надо в какой-то момент разослать виджетам в диалоге некое сообщение.
[13:07:09] <andrew_b> Как это правильно сделать?
[13:07:42] <andrew_b> Нужно определить тип сначала.
[13:07:55] <slavazanko/h> тип виджета?
[13:08:10] <andrew_b> Тип события.
[13:08:43] <andrew_b> Потом создать коллбэки для виджетов.
[13:09:06] <slavazanko/h> ты про ивенты сейчас спрашиваешь? mc_event?
[13:09:13] <andrew_b> Да.
[13:10:52] <andrew_b> Вот тут возникают проблемы.
[13:12:01] <andrew_b> Например, есть в диалоге несколько полей ввода, которые доджны обработать это сообщение.
[13:12:20] <slavazanko/h> а, понято.
при создании диалога нужно задать некое уникальное имя для него. (строка) Можно рандомное ( типа, "_widget_dialog_%d",random()).
Пусть это имя хранится в dialog_t->name
затем при добавлении виджетов в диалог все виджеты должны использовать это имя диалога как группу событий.
mc_event_add(my_dialog->name, "on_refresh", ...);
[13:12:39] <slavazanko/h> при грохе диалога грохать всю группу событий
[13:15:25] <andrew_b> Ясно.
[13:16:25] <andrew_b> А как отличать виджеты один от другого? По event_init_data?
[13:17:18] <slavazanko/h> да
[13:17:37] <andrew_b> Ладно, ща попробую.
[13:17:52] <slavazanko/h> перелопачиваешь виджеты?
[13:18:45] <andrew_b> Нет. Пытаюсь собрать сохранение истории в одном месте.
[13:19:00] <andrew_b> При закрытии диалога.
[13:19:31] <slavazanko/h> а, гуд. полезное дело.
Заодно дашь старт евентам в widget :)
[13:22:26] theMIROn вышел из конференции
[13:22:33] theMIROn зашёл в конференцию
[13:30:26] theMIROn вышел из конференции
[13:30:34] theMIROn зашёл в конференцию
[13:49:26] theMIROn вышел из конференции
[13:49:37] theMIROn зашёл в конференцию
[14:00:13] <andrew_b> slavazanko/h: ещё вопрос. Как отписать какой-то виджет от события. Например, есть панель. Если она список файлов (WPanel), то она должна реагировать на событие. Если мы сменили тип панели, например, на info, то панель уже не должна обрабатывать это событие.
[14:03:47] <andrew_b> mc_event_del удаляет каллбэк, но этот коллбэк могут использовать другие виджеты. Тогда все они будут отписаны от виджета.
[14:04:04] <andrew_b> отписаны от события.
[14:05:42] <slavazanko/h> mc_event_del удаляет с указанием каллбэка.
[14:05:58] <slavazanko/h> desvroy грохает евент со всеми каллбэками
[14:07:01] <slavazanko/h> ну не суть важно. По повод смены типа панели... гм... может, передавать обработчику дополнительно тип и если он не такой, то просто не обрабатывать событие, давая другим обработчикам шанс на обработку?
[14:26:03] <andrew_b> Понимаешь, какое дело. Виджет может быть вообще из диалога удалён.
[14:26:42] <andrew_b> Например, в редакторе открыто несколько окон. Одно окно закрывается.
[14:28:48] <andrew_b> Если при подписке он в event_init_data занёс указатель на себя, то при закрытии этот указатель становится невалидным.
[14:37:10] <andrew_b> Наверное, надо иметь в виду не один коллбэк, целиком mc_event_callback_t.
[14:39:13] <andrew_b> Ведь может быть несколько одинаковых коллбэков, но с разными init_data.
[14:51:17] <slavazanko/h> гм, да. Тогда mc_event_add должен возвращать некий id, с которым потом можно удалить один выборочный каллбэк из события... сейчас есть косяк, что если есть несколько одинаковых каллбэков на одно событие , то после mc_event_del() удалится первый в списке... а не нужный
[14:51:50] <slavazanko/h> или их сейчас просто ещё и по init_data распознавать?
[14:52:11] <andrew_b> Наверное да, по init_data.
[14:52:56] <slavazanko/h> ок. В каком бранче ты творишь? Я переключусь и подкоммичу
[14:53:16] <andrew_b> 2541_save_setup
[14:53:56] <andrew_b> Trac detected an internal error:

OSError: [Errno 12] Cannot allocate memory
[14:54:32] <slavazanko/h> блин
[14:56:50] <andrew_b> Ну не суть.
[14:56:59] <andrew_b> git работает.
[15:38:21] <slavazanko/h> перезапустил на m-c.o trac
[16:12:11] <slavazanko/h> запушил по эвентам. сделай git pull --rebase
[16:49:47] slavazanko/h вышел из конференции
[17:54:03] il.smind зашёл в конференцию
[17:54:59] <il.smind > кто здесь?
[18:51:24] <il.smind > опять попрятались...
[18:58:31] andrew_b вышел из конференции
[19:31:02] il.smind вышел из конференции
[19:56:58] theMIROn вышел из конференции
[19:57:03] theMIROn зашёл в конференцию
[20:06:58] theMIROn вышел из конференции
[20:09:11] il.smind зашёл в конференцию
[21:09:58] il.smind вышел из конференции
[21:26:34] theMIROn зашёл в конференцию
[21:29:27] theMIROn вышел из конференции: Miranda IM. Menshe. Pushche. Proshhe!
[21:29:45] theMIROn зашёл в конференцию
[23:43:58] slavazanko/h зашёл в конференцию
Powered by freQ Powered by Python Valid XHTML 1.0 Transitional Valid CSS!