anonymous@RULINUX.NET~# | Last login: 2024-11-05 13:23:33 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Development | [RSS] |
anonymous(*) (2009-03-26 03:39:05)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0
|
|
|
Скрыть
Re:[Gtk/Cairo] Хочу счастья.>Хотя интересны сами приципы построения таких вещей.. Как пободные вещи правильно писать. Если дашь ссылку, буду рад. Имхо абстрактно алгоритм можно сделать например такой: Ловится клик мышкой, берутся его координаты. По координатам достается объект, что под мышкой, если он может двигаться, то далее все движения мышки с нажатой кнопкой меняют координаты объекта соответственно. Ну и при отпускании кнопки мыши координаты объекта далее не перестают менять. Соответственно проводятся всякие проверки на то, не вылез ли объект куда не надо и прочее. Ну а для гтк конкретно наверняка есть какие-либо дополнительные функции, которые упрощают уже это дело. anonymous(*)(2009-03-26 16:53:23)
Mozilla/5.0 (X11; U; Linux; ru-RU) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.4 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.>А вот ГТК... Или ты хочешь на шарпе писать? Писать, наверно, на Vala буду.. Или на Си.. Посмотрим. Хотя от языка тут мало что зависит.. Но плюсов совсем не хочу. mono(*)(2009-03-26 20:28:39)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.>Ну а для гтк конкретно наверняка есть какие-либо дополнительные функции, которые упрощают уже это дело. В общем нужно писать обработчики событий мыши для GtkDrawingArea... Будем думать.. Жаль, что тут гномеров нет.. mono(*)(2009-03-26 20:30:24)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0 |
mono(*)(2009-03-27 19:37:02)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0 |
anonymous(*)(2009-03-28 13:49:55)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.Нет.. GtkCurve мне в этом случае никак не поможет.. Но я, в принципе, понял как можно сотворить такое чудо.. Если надо, могу рассказать.. хм.. может блог завести о Vala и Gtk? mono(*)(2009-03-29 01:53:17)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.ИМХО более безгиморно сотворить квадратики в виде виджетов, и оные виджеты ужо таскать. Применение drawing area в этом случае не обезательно, сгодится любой контейнер, позволяющий произвольное позиционирование виджета. Сами же виджеты-квадратики можно отрисовывать и каиром, да. bugmaker(*)(2009-03-30 07:51:25)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.>>к примеру квадратики Так к примеру или как? На самом деле - составляется список объектов, нарисованных на поверхности, и отслеживаются перемещения курсора. когда пользователь кликает курсором, выбирается объект из списка "ближайщий" к точке клика. А потом объект перерисовывается в зависимости от перемещения нажатого курсора. Проблема только с этим "ближайщим". Если в списке только прямоугольники, то можно просто определить - клик внутри прямоугольника или снаружи. А если объект состоит из безье кривых? Брать bounding box в этом случае будет не вполне очевидным решением с точки зрения пользователя. anonymous(*)(2009-03-30 09:11:12)
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070601 SeaMonkey/1.1.2 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.Виджеты - это конечно здорово.. Но у меня рисунок не только из квадратиков состоит и вообще я не очень представляю как тут виджеты лучше юзать. А в виде отлавливания событий мыши я уже вроде как понял как писать. И даже рабочий пример готов. mono(*)(2009-03-31 07:02:34)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0 |
mono(*)(2009-03-31 07:03:17)
Opera/10.00 (Macintosh; Intel Mac OS X; U; Edition Turbo; en) Presto/2.2.0 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.> Но у меня рисунок не только из квадратиков состоит Это без разницы, можно отрисовать виджет произвольной формы > и вообще я не очень представляю как тут виджеты лучше юзать. Каждый тягаемый элемент изображения - виджет, вот и всё тут > А в виде отлавливания событий мыши я уже вроде как понял как писать. И даже рабочий пример готов. Тебе придётся заниматься не только отловом событий, но и перерисовкой всех делов вручную. Если чё-то криво сделаешь, возникнут нереальные тормоза. Проще и эффективнее перепоручить это дело ГТК. bugmaker(*)(2009-03-31 19:41:52)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.1. Сотворяешь контейнер для таскаемых виджетов на основе GtkFixed. Он должен будет отлавливать (посему он видимо должен иметь собственное окно) - событие "кнопка мыши отпущена". По этому событию, если при отпуске кнопки таскался виджет, переместить его в новое место. - событие "кнопка мыши вышла за пределы окна". При этом, если таскался виджет, его надо вернуть на прежнее место, либо смотри сам, возможны варианты. 2. Сотворяешь таскаемый виджет на основе любого, но он должен иметь собственное окно либо комбинироваться с GtkEventBox, чтобы мог ловить нужные события. Руководства по сотворению виджетов с отрисовкой при помощи Cairo, в сети есть. Он должен будет отлавливать - событие "кнопка мыши нажата". Если виджет непрямоугольный, обработчику следует выяснить, попало ли нажатие на закрашенную область, и если нет, отказаться от его обработки. Затем этот виджет переводится в состояние "таскаемого", т.е. родителю сообщается какой виджет таскается и его изображение цепляется к указателю мыши. В целом так, хотя в деталях возможны варианты. bugmaker(*)(2009-04-04 22:19:50)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 |
Скрыть
Re:[Gtk/Cairo] Хочу счастья.чёто user line break неработает, но вроде всё осталось понятно. Такой механизм прост и работает в пределах одного окна. Если нужно передавать данные меж приложениями, всё практически то же самое, но в обработчиках следует задействовать http://library.gnome.org/devel/gtk/2.15/gtk-Drag-and-Drop.html bugmaker(*)(2009-04-04 22:25:21)
Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4 |
|
|
|
Этот тред читают 4 пользователя: |
Анонимных: 4 Зарегистрированных: 0 |
Re:[Gtk/Cairo] Хочу счастья.
В сторону QT?
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.7) Gecko/2009030814 Iceweasel/3.0.7 (Debian-3.0.7-1)