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 use installer for your app and create the app which will work on different machines without need to recompile it).

So, specially for those, who still has problems with implementation of plugins for wxWidgets apps, I created the sample which compiles and runs on all 3 platforms, has 2 types of plugins (with and without GUI), creates the relocatable application where all plugins and other libs search for dependencies using relative paths which means that you don’t need to rebuild the app on different machines to make it work.

You can find the complete source code at GitHub: Modular wxWidgets Application with Plugins

The project is under development since I’m writing an article about this in parallel, so you are welcome to follow the project at GitHub and try the new versions.

Features which I plan to add in nearest updates:

  • Embedding of wxWidgets libs into OS X Bundle
  • Embedding of wxWidgets libs into application’s distro for Linux
  • Document/View: Support of different file formats using plugins
  • Communication between plugins

So, stay tuned, start watching the project at GitHub!

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

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

Все это будет в svn trunk и не факт что появится в ветке 2.8. Так что “кто куды, а мы к зайцам” (с), пойду качать svn trunk. Там кстати еще много чего полезного появилось. Если вы пользуетесь стабильной версией 2.8, рекомендую хотя бы попробовать trunk.

Еще вскользь упомянули, что потихоньку развивается wxSymbian и wxQNX. Порт для Symbian мне кажется очень перспективным, да.

AxTk: An Accessibility Toolkit for wxWidgets


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 to learn and use, in addition to providing adaptation for some existing GUI controls and dialogs. The developer can choose whether to use the menu system, or to adapt an existing application UI, or use a combination of methods.

AxTk is cross-platform (tested so far on Windows XP, Linux and Mac OS X 10.5), and includes text-to-speech classes with the ability to drive SAPI 5, Apple Speech Synthesis Manager, eSpeak, and Cepstral. Other speech engines can be driven by writing additional handlers.

Note that AxTk is a work in progress and the API is subject to change.
Continue reading…

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 affected records
  • Database backends are dynamically loaded (at the request of users)
  • Ship with an internal version of SQLite3 to reduce dependency issues when compiling
  • UNICODE fixes for ODBC code
  • ODBC backend should now work for MS SQL Server
  • Various fixes for ODBC, Firebird, MySQL, and PostgreSQL backends
  • Added compile targets “databaselayer” and “databaselayer_gpl” to compile the library with multiple database backends
  • Added DLL exports to be able to use DatabaseLayer as a dynamic library

You can download DatabaseLayer 1.8 from wxCode

Read discussion of this release at wxForum.

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


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 you can still use this new version of the library without the need to rewrite your application.

To know more about the new feature read the this page:

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 know more about this topic read this page:

The wxJSON library is now complete and this release should be considered a final beta release.
JSON data format is very stable. It is accredited to be stable forever or, at least, until programming language’s variables are based on numbers, strings, booleans, structures and arrays.

No other feature should have to be added to the library and I think that, after a few months used for discovering and fixing bugs, I will release the stable version 1.0

This will be the good occasion to, eventually, break the compatibility with the old versions 0.x by changing memberfunction’s names and/or parameters.
If you have any comment, suggestion or hint, feel free to write to me or post an answer to this topic.


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

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

Разработчики wxWidgets потратили несколько месяцев на создание скриптов для автоматического преобразования документации, и уже достигли той точки, где скрипты уже не могут помочь. В Документация wxWidgets довольно обширна и файлы с документацией в новом формате требуют ручной обработки чтобы исключить ошибки, которые могли появиться в процессе автоматического преобразования.

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

Если вы заинтересованы, но вам надо информация о том, как все настроить, или если у вас есть какие-либо сомнения или вопросы, не стесняйтесь задать их здесь.

Это хорошая возможность:

  • Познакомиться с wxWidgets ближе
  • Улучшить те части документации, которые вам не очень нравились
  • Помочь сделать wxWidgets еще более конкурентоспособным инструментом разработки