29 марта 2010 г.

GtkDrawingArea. Усовершенствование

В данной статье мы усовершенствуем программу для рисования, разработанную в "GtkDrawingArea. Автоматическое рисование точек на холсте". Во-первых, избавимся от существенного бага прошлой версии - стирания нарисованного после перекрытия области для рисования другим окном. Во-вторых, обработаем клики по холсту левой кнопкой мыши.



Создание скриншота рабочего стола

Вот я и узнал, как можно создать скриншот всего десктопа. Алгоритм аналогичен используемому в статье "Создание скриншота программы", за исключением того, что вместо конкретного виджета мы будем использовать корневое окно, т.е. рабочий стол, доступ к которому можно получить через Gdk::get_default_root_window(). Далее методом get_size() узнаем размеры монитора и напечатаем их в консоль. Ну а непосредственно про создание скриншота я уже рассказывал. Остаётся добавить только то, что в самом начале программы необходимо прописать следующий цикл:
while (Gtk::events_pending())
{
Gtk::main_iteration();
}

Это необходимо для того, чтобы убедиться, что все виджеты отображаются на экране.



GtkDrawingArea. Динамическое изменение содержимого области

В данной статье я расскажу о том, как вручную нарисовать и анимировать прогресс-бар. Все используемые приёмы уже обсуждались ранее: о работе с GtkDrawingArea я рассказал в статье "GtkDrawingArea. Автоматическое рисование точек на холсте", а о реализации тайм-аута в "Секундомер". Поэтому расскажу лишь непосредственно о самой реализации программы.