Создание собственных валидаторов значения текстового поля в wxWidgets

Еще одна статья от Александра (sandy) Илюшенко о создании собственного валидатора для wxTextCtrl.

Наверное каждый сталкивался с проблемой ввода логина пользователя, особенно если необходимо запретить ввод кириллических букв. Для реализации этой столь простой задачи напрашивается использовать wxTextValidator и его метод SetExcludes. Но, как по мне, не очень элегантно перед объявлением wxTextCtrl создавать экземпляр wxTextValidator и впихивать в него запрещенные для ввода символы. По-моему, гораздо удобнее использовать унаследованный от wxTextValidator класс. К тому же, его использование может быть неоднократным.
Continue reading…

Кастомизация класса wxHtmlEasyPrinting для печати отчетов в wxWidgets

Александр (sandy) Илюшенко любезно предоставил статью о кастомизации класса для печати отчетов wxHtmlEasyPrinting:

В этой статье я опишу еще один переопределенный класс для своих нужд. Думаю, что не только для моих нужд. Началось все с того, что мне пришлось выводить нокоторые свои данные на печать в табличном представлении. Но перед этим, как сами понимаете, не лишним будет и предварительный просмотр.
Continue reading…

Классы редактирования даты и времени в ячейках wxGrid

Александр (sandy) Илюшенко любезно предоставил статью о создании редактора ячеек wxGrid:

Данная статья посвящена внедрению в грид ячеек для редактирования дат и времени. Сам котрол для дат существует – wxDatePickerCtrl. Остается вопрос, как прикрутить его к гриду.
Continue reading…

Переопределение поведения стандартных компонентов. Делаем свой wxGrid

Александр (sandy) Илюшенко любезно предоставил статью о том, как настроить класc wxGrid под свои нужды:

Захотелось мне как-то, чтобы в гриде были не номера строк, а маркер.
К тому же очень хотелось, чтобы незаполненное пространство грида было не белым, а, примерно, как на рисунке ниже.
Делаем собственный wxGrid
Навеяно это было в основном аналогичными и другими классами, предоставляемыми MFC. Тут же и вспомнилось, что подобные классы также прдоставляют очень полезные методы для хранения дополнительных не отображаемых данных, такие как SetData() или GetData().
Continue reading…

PDF-версия статьи “Пишем скринсейвер на wxWidgets”

Выложил русскую PDF-версию статьи “Пишем скринсейвер на wxWidgets“. В статье рассмотрено:

  • Создание собственных компонентов
  • Отрисовка графики, double-buffering с использованием wxBufferedPaintDC
  • Обработка событий от мыши и клавиатуры
  • Обработка аргументов командной строки с помощью wxCmdLineParser
  • Хостинг wxWidgets-окна на внешнем нативном окне

Скачать статью “Пишем скринсейвер на wxWidgets”.
Скачать исходный код примера и проекты для Win32 и Windows Mobile + исполняемый файл для Win32.

wxJSON 1.0 Released

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

This is the first stable release of the wxJSON library. The major version had changed because I introduced some compatibility breaks with the old 0.x versions as well as some new features.
To know more about this read this page

Links:

Отправка SMS под wxWinCE с помощью CE MAPI

Появилась необходимость программно отправлять SMS с телефона под управлением Windows Mobile. Решил не изобретать велосипед и поиспользовать MAPI для этих целей. После недолгих поисков набрел на эту статью на CodeProject. Немного переделал код для использования с wxWidgets. Вот что получилось
Continue reading…

How to Draw Gradient Buttons (wxWidgets Way)

Several days ago I found How to draw gradient buttons post at Native Mobile blog. Looks nice but I think that using GradienFill() is not very convenient because you need to fill all these TRIVERTEX structures. wxWidgets provides more convenient way of drawing gradients by using wxDC::GradientFillLinear(). Here is how it can be done in wxWidgets:
Continue reading…