T-Rex wrote:Так эээ.. ну тут два варианта:
- Рендерить кнопку руками
- Размещать контрол/кнопку руками в виде дочернего контрола, обрабатывать изменения размеров ячейки и перемещать кнопку куда надо.
Тебе что именно реализовать надо, для wxGrid конпку в ячейке или устроит функционал wxPropertyGrid?
На
http://wxwidgets.info я недавно две статьи постил по кастомизации wxGrid'а.
Спасибо за помощь.
Задача такова, что нужно для wxGrid для произвольной ячейки уметь ее сделать ButtonType (то есть текст + кнопка справа) и чтобы при нажатии на кнопку вызывалась некая функция.
В идеале планируется расширить класс wxGrid, чтобы был метод что-то вроде setButtonTypeCell(row, column, btn_name, callback), где колбэк - указатель на функцию, вызываемую при нажатии кнопки.
Кнопку руками рендерить как я понимаю не получится, так как для нее требуется стандартный вид на любой ОС, на которую будет портирован проект. На данный момент это только для винды реализуется, но Windows only функции использовать по вышеупомянутой причине нельзя.
Соответственно, получается, что нужно именно дочерним элементом кнопку добавлять, что я пытаюсь делать, но почему-то при создании кнопки с parent = grid ее не видно, если добавляю новую панель, а на нее кнопку, то она появляется, но при манипуляциях с grid панель исчезает и появляется кусками не совсем понятным образом.
Функционал PropertyGrid не устроит, так как там слишком много лишнего для моей задачи и не хочется полагаться на код сторонних разработчиков(а).
Сейчас потихоньку осиливаю Cross-platform GUI Programming with wxWidgets, думаю, что проблема в том, что некоторых принципов базовых пока не знаю.
PS. Статьи читал, но полностью переварить не смог
[offtop]
Там пару косяков можно в оформлении пофиксить:
1. Последние скриншоты не видны (в оригинале все ок) в обоих статьях
2. В середине предпоследней статьи в листинг кода врезался авторский текст про Example.cpp
[/offtop]