<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_6_thread_879"  />
<title>rulinux.net - Форум - Development - [Gtk/Cairo] Хочу счастья.</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Development - [Gtk/Cairo] Хочу счастья.</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4876</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4876</guid>
<pubDate>Sat, 04 Apr 2009 18:25:21 +0400</pubDate>
<description><![CDATA[<p>чёто user line break неработает, но вроде всё осталось понятно. Такой механизм прост и работает в пределах одного окна. Если нужно передавать данные меж приложениями, всё практически то же самое, но в обработчиках следует задействовать <a href="http://library.gnome.org/devel/gtk/2.15/gtk-Drag-and-Drop.html">http://library.gnome.org/devel/gtk/2.15/gtk-Drag-and-Drop.html</a></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4875</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4875</guid>
<pubDate>Sat, 04 Apr 2009 18:19:50 +0400</pubDate>
<description><![CDATA[<p>1. Сотворяешь контейнер для таскаемых виджетов на основе GtkFixed. Он должен будет отлавливать (посему он видимо должен иметь собственное окно)
- событие "кнопка мыши отпущена". По этому событию, если при отпуске кнопки таскался виджет, переместить его в новое место.
- событие "кнопка мыши вышла за пределы окна". При этом, если таскался виджет, его надо вернуть на прежнее место, либо смотри сам, возможны варианты.
2. Сотворяешь таскаемый виджет на основе любого, но он должен иметь собственное окно либо комбинироваться с GtkEventBox, чтобы мог ловить нужные события. Руководства по сотворению виджетов с отрисовкой при помощи Cairo, в сети есть. Он должен будет отлавливать
- событие "кнопка мыши нажата". Если виджет непрямоугольный, обработчику следует выяснить, попало ли нажатие на закрашенную область, и если нет, отказаться от его обработки. Затем этот виджет переводится в состояние "таскаемого", т.е. родителю сообщается какой виджет таскается и его изображение цепляется к указателю мыши.</p><p>В целом так, хотя в деталях возможны варианты.</p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4874</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4874</guid>
<pubDate>Wed, 01 Apr 2009 10:39:15 +0400</pubDate>
<description><![CDATA[<p><p>Пожалуй ты прав.. тормоза имеются, на пустом месте.</p><p>
А как грамотно сделать таскание GtkWidget?</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4873</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4873</guid>
<pubDate>Tue, 31 Mar 2009 15:41:52 +0400</pubDate>
<description><![CDATA[<p><p style="font-style:italic">&gt; Но у меня рисунок не только из квадратиков состоит </p><p>Это без разницы, можно отрисовать виджет произвольной формы</p><p style="font-style:italic">&gt и вообще я не очень представляю как тут виджеты лучше юзать. </p><p>Каждый тягаемый элемент изображения - виджет, вот и всё тут</p><p style="font-style:italic">&gt А в виде отлавливания событий мыши я уже вроде как понял как писать. И даже рабочий пример готов.</p><p>Тебе придётся заниматься не только отловом событий, но и перерисовкой всех делов вручную. Если чё-то криво сделаешь, возникнут нереальные тормоза. Проще и эффективнее перепоручить это дело ГТК.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4872</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4872</guid>
<pubDate>Tue, 31 Mar 2009 03:03:17 +0400</pubDate>
<description><![CDATA[<p><p>У меня безье кривых нет.. все немного проще.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4871</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4871</guid>
<pubDate>Tue, 31 Mar 2009 03:02:34 +0400</pubDate>
<description><![CDATA[<p><p>Виджеты - это конечно здорово.. Но у меня рисунок не только из квадратиков состоит и вообще я не очень представляю как тут виджеты лучше юзать. А в виде отлавливания событий мыши я уже вроде как понял как писать. И даже рабочий пример готов.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4870</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4870</guid>
<pubDate>Mon, 30 Mar 2009 05:11:12 +0400</pubDate>
<description><![CDATA[<p><p style="font-style:italic">&gt;&gt;к примеру квадратики</p><p>Так к примеру или как?</p><p>На самом деле - составляется список объектов, нарисованных на поверхности, и отслеживаются перемещения курсора. когда пользователь кликает курсором, выбирается объект из списка "ближайщий" к точке клика. А потом объект перерисовывается в зависимости от перемещения нажатого курсора.</p><p>Проблема только с этим "ближайщим". Если в списке только прямоугольники, то можно просто определить - клик внутри прямоугольника или снаружи. А если объект состоит из безье кривых? Брать bounding box  в этом случае будет не вполне очевидным решением с точки зрения пользователя. </p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4869</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4869</guid>
<pubDate>Mon, 30 Mar 2009 03:51:25 +0400</pubDate>
<description><![CDATA[<p><p>ИМХО более безгиморно сотворить квадратики в виде виджетов, и оные виджеты ужо таскать. Применение drawing area в этом случае не обезательно, сгодится любой контейнер, позволяющий произвольное позиционирование виджета. Сами же виджеты-квадратики можно отрисовывать и каиром, да.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4868</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4868</guid>
<pubDate>Sat, 28 Mar 2009 21:53:17 +0300</pubDate>
<description><![CDATA[<p><p>Нет.. GtkCurve мне в этом случае никак не поможет.. Но я, в принципе, понял как можно сотворить такое чудо.. Если надо, могу рассказать..</p><p>
хм.. может блог завести о Vala и Gtk?</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4867</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4867</guid>
<pubDate>Sat, 28 Mar 2009 09:49:55 +0300</pubDate>
<description><![CDATA[<p><p>GtkCurve не устроит? (это потомок от GtkDrawingArea)</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4866</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4866</guid>
<pubDate>Fri, 27 Mar 2009 15:37:02 +0300</pubDate>
<description><![CDATA[<p><p>А я разобрался как такое сделать... Гм..</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4865</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4865</guid>
<pubDate>Thu, 26 Mar 2009 16:30:24 +0300</pubDate>
<description><![CDATA[<p><p style="font-style:italic">&gt;Ну а для гтк конкретно наверняка есть какие-либо дополнительные функции, которые упрощают уже это дело.</p><p>В общем нужно писать обработчики событий мыши для GtkDrawingArea... Будем думать..</p><p>Жаль, что тут гномеров нет..</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4864</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4864</guid>
<pubDate>Thu, 26 Mar 2009 16:28:39 +0300</pubDate>
<description><![CDATA[<p><p style="font-style:italic">&gt;А вот ГТК... Или ты хочешь на шарпе писать?</p><p>Писать, наверно, на Vala буду.. Или на Си.. Посмотрим. Хотя от языка тут мало что зависит.. Но плюсов совсем не хочу.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4863</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4863</guid>
<pubDate>Thu, 26 Mar 2009 12:53:23 +0300</pubDate>
<description><![CDATA[<p><p style="font-style:italic">&gt;Хотя интересны сами приципы построения таких вещей.. Как пободные вещи правильно писать. Если дашь ссылку, буду рад.</p><p>Имхо абстрактно алгоритм можно сделать например такой:</p><p>Ловится клик мышкой, берутся его координаты. По координатам достается объект, что под мышкой, если он может двигаться, то далее все движения мышки с нажатой кнопкой меняют координаты объекта соответственно. Ну и при отпускании кнопки мыши координаты объекта далее не перестают менять. Соответственно проводятся всякие проверки на то, не вылез ли объект куда не надо и прочее.</p><p>Ну а для гтк конкретно наверняка есть какие-либо дополнительные функции, которые упрощают уже это дело.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4862</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4862</guid>
<pubDate>Thu, 26 Mar 2009 06:20:45 +0300</pubDate>
<description><![CDATA[<p><p>Плюсую. Как реализовать на Qt я бы подсказал. А вот ГТК... Или ты хочешь на шарпе писать?</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4861</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4861</guid>
<pubDate>Thu, 26 Mar 2009 06:01:04 +0300</pubDate>
<description><![CDATA[<p><p style="font-style:italic">&gt;В сторону QT?</p><p>Не хочу плюсов и Qt... </p><p>Хотя интересны сами приципы построения таких вещей.. Как пободные вещи правильно писать. Если дашь ссылку, буду рад.</p></p>]]></description>
</item>
<item>
<title>Re:[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4860</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4860</guid>
<pubDate>Thu, 26 Mar 2009 04:06:17 +0300</pubDate>
<description><![CDATA[<p><p>В сторону QT?</p></p>]]></description>
</item>
<item>
<title>[Gtk/Cairo] Хочу счастья.</title>
<link>https://rulinux.net/message.php?newsid=879&amp;page=1#4859</link>
<guid>https://rulinux.net/message.php?newsid=879&amp;page=1#4859</guid>
<pubDate>Wed, 25 Mar 2009 23:39:05 +0300</pubDate>
<description><![CDATA[Дано:

GtkWindow, на котором есть GtkDrawingArea... Хочу сделать такую штуку... Пусть на GtkDrawingArea есть какие-нибудь объекты, ну к примеру квадратики, нарисованные с помощью Cairo. Нужно сделать так, что бы их можно было таскать мышкой.. Короче D'n'D.

Примерно представляю как это сделать... Но как-то криво...

И куда копать не понимаю.]]></description>
</item>
</channel>
</rss>