T-RexVolodymyr Triapichko

All articles by T-Rex

 

wxWidgets App With Plugins (Windows/Linux/Mac) – Sample Source Code

I can see that there is still a lot of topics at wxWidgets forums related to usage of shared libs or plugins with wxWidgets apps on different platform. For Windows it’s not hard to implement such app but on Linux and OS X this may be quite tricky (especially when you are not planning to
Continue reading…

 

wxToolBox is Now Open-Source!

I’ve just published the source code of wxToolBox component and a couple of sample apps at GitHub: https://github.com/T-Rex/wxToolBox There is a working minimal sample and `Sample IDE` app with source code, Skin Editor does not compile with new version of wxPropertyGrid and I’m not currently interested in updating the source code. The working binary version for Windows
Continue reading…

 

Microsoft Kinect Helper Library and Sample for wxWidgets

Microsoft released their Kinect SDK several days ago. So, for those wxWidgets developers who are interested in development of Kinect-powered applications, I created a small wxWidgets-based helper library and sample application which will allow to start using Kinect SDK. wxKinectHelper project is hosted at Google Code. For now only basic functionality is available: Retreiving the
Continue reading…

 

wxJSON 1.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
Continue reading…

 

wxRuby. Оно даже работает!

Вдохновленнный читаемой нынче книгой My Job Went to India: 52 Ways to Save Your Job решил покорять новые горизонты. Наткнулся несколько дней назад на вводную статью о wxRuby и сегодня решил попробовать. Оказывается это не так страшно.

 

Дааа! Ribbon Bar для wxWidgets не за горами!

Надо же,в wxBlog такое рассказывают. Оказывается Google Summer of Code для wxWidgets принес много полезного в этом году. Обещают поддержку нотификаций об изменениях файловой системы – wxFSWatcher, а также (внимание!) Ribbon для wxWidgets – wxRibbonBar. А еще…. апгрейды всевозможные для wxAUI (жду не дождусь collapsible panes и tabbed docking). Все это будет в svn trunk
Continue reading…

 

Cross-Platform Way of Obtaining MAC Address of Your Machine

In one of my current projects I had to implement client-server communication and protection by MAC address when client machine can’t connect to server if its MAC address is not allowed, regardless of network or broadband connection. But what was a surprise that wxWidgets does not have API which allows obtaining MAC address in cross-platform
Continue reading…

 

Taking Screenshots with wxWidgets under Mac OS is Really Tricky.

Taking screenshots is a very common task and it was a must for one of my current projects. What was a surprise when I understood that my favourite toolkit can’t do that in cross-platform manner. It is official bug that wxScreenDC does not work properly under Mac OS and you can’t use Blit() message for
Continue reading…

 

AxTk: An Accessibility Toolkit for wxWidgets

http://code.google.com/p/axtk/ What is AxTk? AxTk (pronounced Ay Ex Tee Kay) is an open source, C++ add-on for wxWidgets that helps developers create highly accessible, talking applications for users with impaired vision. It may also be useful for other impairments that benefit from a simplified user interface. AxTk features a new menu-based system that is easy
Continue reading…

 

Работаем с Cairo в wxWidgets – Часть I – Компиляция CAIRO 1.8.6 на Visual C++ 8

Первая статья из цикла, повествующего о том, ка киспользовать библиотеку cairo (и обертку wxCairo) с wxWidgets. В этот раз речь пойдет о том, как собрать библиотеку cairo с помощью Visual C++ в Windows. Для начала определимся, что нам нужно: Mozilla Build 1.3 cairo 1.8.6 libpng 1.2.35 zlib 1.2.3 pixman 0.14.0

 

Do You Need Data Access Layer Code Generator Tool?

 

Работа с базами данных в wxWidgets – DatabaseLayer – Минимальное приложение

Вслед за анонсом новой версии DatabaseLayer, кросс-платформенной библиотеки для работы с базами данных, решил выложить небольшой туториал с примером использования DatabaseLayer. В этот раз мы рассмотрим пример создания простейшего консольного приложения, использующего эту библиотеку для работы с базами данных.

 

DatabaseLayer 1.8 Released

Yesterday jb_coder announced new version of cross-platform database access library for wxWidgets, DatabaseLayer 1.8. DatabaseLayer provides access to different types of databases using unified wxWidgets-based API. It supports: SQLite3 Firebird MySQL PostgreSQL Oracle Microsoft SQL Server ODBC Here is the list of changes for this release: Changed RunQuery message signature to return a list of
Continue reading…

 

Using wxFlatNotebook in Code::Blocks Project

This tutorial shows how to: Create wxFlatNotebook static library in Code::Blocks. Configure and compile wxFlatNotebook library. Create small wxWidgets project which uses wxFlatNotebook. Configure project and add support of 3rd-party library. Download video: “Using wxFlatNotebook in Code::Blocks Project”.

 

Перевод книги Julian’а Smart’а – Глава IX – Написание собственных диалогов – Часть III

Читать вторую часть главы “Написание собственных диалогов”. Дополнительные заметки о дизайне диалогов Несколько советов, которые помогут вашим диалогам выглядеть профессионально выглядящими. Навигация с помощью клавиатуры Указывайте мнемоники для меток со статическим текстом и для других элементов управления с метками. Для этого необходимо поставить перед необходимым символом амперсанд (&). На некоторых платформах (особенно Windows и GTK+)
Continue reading…

 

Перевод книги Julian’а Smart’а – Глава IX – Написание собственных диалогов – Часть II

Читать первую часть главы “Написание собственных диалогов”. Добавление помощи Существует по крайней мере три пути как можно реализовать помощь для вашего диалога: Всплывающие подсказки Контекстная помощь Справочная система Кроме того у нас уже есть некоторый текст на самой панели диалога. Возможно вы захотите также использовать другие технологии, явно не поддерживаемые в wxWidgets. Например, для более
Continue reading…

 

Перевод книги Julian’а Smart’а – Глава IX – Написание собственных диалогов – Часть I

Скачать PDF-версию (342 КБ) Рано или поздно вам понадобится создать собственный диалог, будь то простой диалог, состоящий из текста и нескольких кнопок, или сложный диалог с вкладками, множеством панелей, собственными элементами управления, контекстной помощью и т.п. В этой главе мы рассмотрим основные принципы создания диалогов, а также передачу данных между переменными C++ и элементами управления.
Continue reading…

 

А может поговорим вживую на CodeCamp?

Зарегистрировался сегодня на CodeCamp, который пройдет 28-29 марта 2009г. в Киеве. Если у кого-то есть желание пообщаться на тему кросс-платформенной разработки на C++/wxWidgets, то можно об этом написать в каментах. Договоримся о встрече

 

Перевод книги Julian’а Smart’а – Глава VI – Обработка данных с устройств ввода

Скачать PDF-версию (223 КБ) Перевод сделан Грубниковым А.Г. Все GUI-приложения должны каким-либо образом реагировать на данные, поступающие от устройства ввода. Эта глава покажет как можно взаимодействовать с мышью, клавиатурой и джойстиком. 6.1 Получение данных от мыши Упрощенно говоря, приложение получает от мыши два вида событий: основные события мыши, посылаемые с помощью класса wxMouseEvent, и “сырые”
Continue reading…

 

Using wxSQLite3 for Creating Mobile Software

New video which shows ho to: Create minimal wxWidgets application for Windows Mobile Compile SQLite for Windows Mobile 5 Compile wxSQLite3 for Windows Mobile 5 Setup wxWidgets application to use wxSQLite Create SQLite database programmatically Create tables in database programmatically Fill tables with data Retrieve data Handle exceptions Download video “Using wxSQLite3 for Creating Mobile
Continue reading…

 

wxJavaScript – Кросс-платформенный скриптинг десктопных приложений. Знакомство

Давно уже хотел написать по поводу wxJavaScript. По-моему сейчас как раз пришло время для этого, т.к. проект уже успел развиться до такого состояния, когда все работает более-менее стабильно. Итак, что же это за зверь wxJavaScript? Проект начинался как обычный порт wxWidgets на JavaScript, но, со временем, “оброс” библиотеками, которых в wxWidgets отродясь не было. Это
Continue reading…

 

How to Create Nice About Box in wxWidgets

After taking a look at wxWidgets samples I noticed that all of them have simple message box instaed of normal about box. However in real applications About dialog is important enough part of GUI. So, in this post I’m going to tell a bit about creating About boxes for your software. wxWidgets has builf-in API
Continue reading…

 

Перевод книги Julian’а Smart’а – Глава X – Работа с Изображениями – Часть 2

Читать первую часть главы Программирование с wxImage wxImage можно использовать, когда Вам нужен платформо-независимый класс работы с изображениями, или как промежуточный класс для загрузки и сохранения изображений. Формат хранения информации об изображении для каждого пикселя использует байт для красного, байт для зеленого, и байт для синего каналов, плюс дополнительный байт для пикселя, если изображение имеет
Continue reading…

 

Перевод книги Julian’а Smart’а – Глава X – Работа с Изображениями – Часть 1

Скачать PDF-версию (942 КБ) В этой главе рассматривается работа с растровыми изображениями. Изображения очень важны для “дизайна” вашего приложения, и могут использоваться с элементами управления, например с панелями инструментов, списками, вкладками, кнопками, HTML окнами, или при рисовании. Иногда их можно сделать невидимыми в приложении, например, когда нужно избежать мерцания во время прорисовки. В этой главе,
Continue reading…

 

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

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

 

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

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

 

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

Александр (sandy) Илюшенко любезно предоставил статью о создании редактора ячеек wxGrid: Данная статья посвящена внедрению в грид ячеек для редактирования дат и времени. Сам котрол для дат существует – wxDatePickerCtrl. Остается вопрос, как прикрутить его к гриду.

 

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

Александр (sandy) Илюшенко любезно предоставил статью о том, как настроить класc wxGrid под свои нужды: Захотелось мне как-то, чтобы в гриде были не номера строк, а маркер. К тому же очень хотелось, чтобы незаполненное пространство грида было не белым, а, примерно, как на рисунке ниже. Навеяно это было в основном аналогичными и другими классами, предоставляемыми
Continue reading…

 

Localization of wxWidgets Application with poEdit

This tutorial shows how to: Create simple wxWidgets application Extract string constants from source code with poEdit and create .PO file Translate string constants with poEdit Create message catalog (.MO file) with poEdit Apply translation with wxLocale class You can download this video here.

 

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

Выложил русскую PDF-версию статьи “Пишем скринсейвер на wxWidgets“. В статье рассмотрено: Создание собственных компонентов Отрисовка графики, double-buffering с использованием wxBufferedPaintDC Обработка событий от мыши и клавиатуры Обработка аргументов командной строки с помощью wxCmdLineParser Хостинг wxWidgets-окна на внешнем нативном окне Скачать статью “Пишем скринсейвер на wxWidgets”. Скачать исходный код примера и проекты для Win32 и Windows
Continue reading…

 

wxWidgets 2.8.9 Released

The wxWidgets team is pleased to announce a new wxWidgets release. The latest stable release in 2.8 series contains several bug fixes as well as a few new functions. Upgrading is recommended for all wxWidgets users.

 

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
Continue reading…

 

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

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

 

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
Continue reading…

 

Getting Acquainted with Document/View Framework – Simple Image Viewer

In my previous posts here and here I showed how to create a simple application which uses Document/View framework. Now I’m going to show more complex example – image viewer with scrolling and selection rectangle. As far as I can see from wxForum, implementation of selection-related functionality is some kind of complex but very useful
Continue reading…

 

wxWidgets 2.8.8 is out !!!

June 24th, 2008 — the wxWidgets team is pleased to announce a new wxWidgets release. wxWidgets is a mature, open source, cross-platform application framework for C++ and other languages. To get wxWidgets, please go to the download page at http://www.wxwidgets.org/downloads/ This is mainly a bug fix release; please see the change log below for details.

 

wxJSON 0.5.0 Released

This wxJSON release adds support for 64-bits integers on those platforms that have native support for it such as, for example, Windows and GNU/Linux. You can disable 64-bits integer support if you do not need (or do not want) it. The new version is compatible wih the past: if you do not need 64-bits integers
Continue reading…

 

Реализация Job Queue на wxWidgets (+исходник)

При работе с потоками часто приходится делать кучу однотипных задач: создавать класс, производный от wxThread, реализовывать метод Entry() для этого класса, синхронизацию с главным потоком и т.д. Eran, автор CodeLite IDE поделился кодом класса JobQueue, который реализует пул потоков и позволяет выполнять задачи в фоновом режиме. Главный поток получает уведомления таким вот образом: // in
Continue reading…

 

wxJSON 0.4 Released

This release adds the ‘copy-on-write’ feature to the copy ctor and assignment operator of JSON value class. Note that this new feature only affects the internal representation of JSON values and does not add new features in the class’s interface. Also note that for JSON value objects, COW is not as efficient as expected. To
Continue reading…

 

Getting Acquainted with Document-View architecture – Part II – Simple Text Editor

Today we’ll dig a little bit deeper into Document/View framework provided by wxWidgets and will see how to create a simple text editor using this framework. We’ll take the source code from the previous article of this series and add some modifications. You will see below that modifications are rather simple and take almost no
Continue reading…

 

Getting Acquainted with Document-View architecture – Part I

A few weeks ago, working on TIFF viewer software, I realized that many developers, who use wxWidgets in their work, spend their time on implementing the functionality which already exists in wxWidgets library. Such tasks as loading/saving documents, edit/copy/paste functionality, separating the GUI from application’s logic, all of them can be performed in a far
Continue reading…

 

Нужна помощь в улучшении документации к библиотеке wxWidgets

wxWidgets находится в процессе работы над улучшением документации – мигрирации из текущей системы, основанной на LaTeX, в Doxygen (используя отдельный набор “интерфейсных” заголовков, вместо рабочих заголовков wxWidgets). Разработчики wxWidgets потратили несколько месяцев на создание скриптов для автоматического преобразования документации, и уже достигли той точки, где скрипты уже не могут помочь. В Документация wxWidgets довольно обширна
Continue reading…

 

Собираем IDE Code::Blocks под FreeBSD

Сегодня вашему вниманию предлагается статья Cosm’а о том, как собрать и настроить среду разработки Code::Blocks под FreeBSD. В этой статье я попытаюсь вам объяснить как ставить Code::Blocks в FreeBSD. Code::Blocks это кросплатформенная IDE построена с помощью wxWidgets. В моем случае установка проводилась на FreeBSD-7.0-Release-i386.

 

wxJSON 0.3.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
Continue reading…

 

Быстрый способ упаковки содержимого папки в ZIP-архив

В wxWidgets есть такая отличная штука, как wxDirTraverser. Что это и с чем его едят? Официальная документация говорит нам вот что: wxDirTraverser is an abstract interface which must be implemented by objects passed to wxDir::Traverse() function. Как по мне, довольно странное описание %), ничего толкового мы из него не узнаем. Тогда идем смотреть описание wxDir::Traverse():
Continue reading…

 

Find & Replace для wxWidgets-приложений

Эх если бы вы знали сколько редакторов не могут корректно делать поиск и замену, особенно касательно неанглийского языка… На прикручивания поиска&замены, для своего проекта на wxWidgets я убил пару дней. И вот теперь когда это кое-как работает, хочу поделится с вами. В open source проектах не удалось найти реализацию поиска для wxTextCtrl или wxRichTextCtrl, кое-какой
Continue reading…

 

Собираем сторонние компоненты wxWidgets в Code::Blocks

Сегодня я расскажу о том, как создать проект Code::Blocks, использующий в своей работе сторонние библиотеки. В качестве сторонней библиотеки мы возьмем библиотеку wxPropertyGrid, предоставляющую возможность встроить редактор свойств в приложение. Для того, чтобы проверить как все работает, нам необходимо создать тестовое приложение, которое будет использовать в своей работе дополнительную библиотеку. Тестовое приложение я собирал с
Continue reading…

 

Прозрачное журналирование с wxLog

В wxWidgets есть отличный механизм журналирования wxLog. С его помощью можно решить проблему ведения лога одновременно в файл и, например, в текстовый контрол. Если необходимо выводить сообщения в файл не только в ANSI, а и в Unicode, то очень удобно использовать логгер wxLogStream. Для его использования, потребуется собрать (если еще не собрано) wxWidgets с выставленной
Continue reading…

 

wxJSON Tutorial – Part IV – Using Comment Lines in wxJSON

Preface Here is a fourth part of wxJSON tutorial provided by Luciano Cattani, author and maintainer of wxJSON library. Visit wxJSON homepage Read Part I of this tutorial Read Part II of this tutorial Read Part III of this tutorial Read Part IV of this tutorial Using Comment Lines in wxJSON Comments are not supported
Continue reading…

 

wxJSON Tutorial – Part III – Describing a Table

Preface Here is a third part of wxJSON tutorial provided by Luciano Cattani, author and maintainer of wxJSON library. Visit wxJSON homepage Read Part I of this tutorial Read Part II of this tutorial Read Part III of this tutorial Read Part IV of this tutorial Describing a Table with wxJSON How many times did
Continue reading…