Но что-то никаким макаром не удается присоединить элемент этого класса
на форуме... Видимо не с той стороны копаю :)
В инете (даже на английском разумеется) вообще примеров нету... :(
У кого-нибудь есть идеи как это можно юзать?
Простенький пример есть в папке demo/, в стандартом дистрибутиве ПХП-
ГТК.
--
Вы получили это сообщение, поскольку подписаны на группу Русское сообщество PHP-GTK.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу php-g...@googlegroups.com.
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу php-gtk-ru+...@googlegroups.com.
О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/php-gtk-ru?hl=ru.
On 23 фев, 09:58, GoTLiuM InSPiRiT <gotl...@gmail.com> wrote:
> php сделан все таки на сях и синтаксис тот же)
> Просто сам php-gtk сыроват и не дает изначально всех возможностей.
> Делал кое-что достаточно серьезное. А итог меня огорчил.
> На удалось реализовать всего, что нужно было. Вот и сделал вывод)
> + есть кое какие соображения. Как нить поделюсь.
> да и в целом думаю надо забацать какой нить фреймворк на gtk)
> вот вам и идейка в добавок)
> жить всем станет легче.
>
> 23 февраля 2010 г. 14:16 пользователь Alex <noverm...@gmail.com> написал:
>
>
>
>
>
> > мдя, юзать с++ хороший совет на форуме php-gtk )))
>
> > 23 февраля 2010 г. 7:48 пользователь GoTLiuM InSPiRiT <gotl...@gmail.com>написал:
>
> >> Юзать c++) Да и просто взять готовые реализации с исходным кодом. И
> >> посмотреть как все устроенно.
>
> >> 23 февраля 2010 г. 2:15 пользователь Nemesis <hilo...@gmail.com> написал:
>
> >> Простенький пример есть в папке demo/, в стандартом дистрибутиве ПХП-
> >>> ГТК.
>
> >>> --
> >>> Вы получили это сообщение, поскольку подписаны на группу Русское
> >>> сообщество PHP-GTK.
>
> >>> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
> >>> php-g...@googlegroups.com.
> >>> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу
> >>> php-gtk-ru+...@googlegroups.com<php-gtk-ru%2Bunsu...@googlegrou-ps.com>
> >>> .
> >>> О дополнительных функциях можно узнать в группе по адресу
> >>>http://groups.google.com/group/php-gtk-ru?hl=ru.
>
> >> --
> >> С Уважением Аскаров Р.А.
> >> тел. +998902982884
>
> >> --
> >> Вы получили это сообщение, поскольку подписаны на группу Русское
> >> сообщество PHP-GTK.
> >> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
> >> php-g...@googlegroups.com.
> >> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу
> >> php-gtk-ru+...@googlegroups.com<php-gtk-ru%2Bunsu...@googlegrou-ps.com>
> >> .
> >> О дополнительных функциях можно узнать в группе по адресу
> >>http://groups.google.com/group/php-gtk-ru?hl=ru.
>
> > --
> > Вы получили это сообщение, поскольку подписаны на группу Русское сообщество
> > PHP-GTK.
> > Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
> > php-g...@googlegroups.com.
> > Чтобы отменить подписку на эту группу, отправьте сообщение по адресу
> > php-gtk-ru+...@googlegroups.com<php-gtk-ru%2Bunsu...@googlegrou-ps.com>
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу php-gtk-ru+...@googlegroups.com.
О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/php-gtk-ru?hl=ru.
class Scribble extends GtkWindow
{
protected $size_group = null;
protected $pixmap = null;
function __construct($parent = null)
{
parent::__construct();
if (@$GLOBALS['framework']) {
return;
}
if ($parent)
$this->set_screen($parent->get_screen());
else
$this->connect_simple('destroy', array('gtk',
'main_quit'));
$this->set_title(__CLASS__);
$this->set_position(Gtk::WIN_POS_CENTER);
$this->set_default_size(-1, -1);
$this->set_border_width(8);
$this->add($this->__create_box());
$this->show_all();
}//function __construct($parent = null)
function __create_box()
{
$vbox = new GtkVBox();
$vbox->show();
$drawing_area = new GtkDrawingArea();
$drawing_area->set_size_request(300, 300);
$vbox->pack_start($drawing_area);
// $drawing_area->realize();
$drawing_area->connect('expose_event' , array($this,
'expose_event'));
$drawing_area->connect('configure_event' , array($this,
'configure_event'));
$drawing_area->connect('motion_notify_event', array($this,
'motion_notify_event'));
$drawing_area->connect('button_press_event' , array($this,
'button_press_event'));
$drawing_area->set_events(Gdk::EXPOSURE_MASK
| Gdk::LEAVE_NOTIFY_MASK
| Gdk::BUTTON_PRESS_MASK
| Gdk::POINTER_MOTION_MASK
| Gdk::POINTER_MOTION_HINT_MASK);
return $vbox;
}//function __create_box()
function configure_event($widget, $event)
{
$this->pixmap = new GdkPixmap($widget->window,
$widget->allocation->width,
$widget->allocation->height,
-1);
$this->pixmap->draw_rectangle($widget->style->white_gc,
true, 0, 0,
$widget->allocation->width,
$widget->allocation->height);
return true;
}
function expose_event($widget, $event)
{
$widget->window->draw_drawable($widget->style->fg_gc[$widget-
>state],
$this->pixmap,
$event->area->x, $event->area->y,
$event->area->x, $event->area->y,
$event->area->width, $event->area->height);
return false;
}
function button_press_event($widget, $event)
{
if ($event->button == 1 && $this->pixmap) {
$this->draw_brush($widget, (int)$event->x, (int)$event-
>y);
}
return true;
}
function motion_notify_event($widget, $event)
{
$window = $event->window;
$pointer = $window->get_pointer();
$x = $pointer[0];
$y = $pointer[1];
$state = $pointer[2];
if (($state & Gdk::BUTTON1_MASK) && $this->pixmap) {
$this->draw_brush($widget, $x, $y);
}
return true;
}
function draw_brush($widget, $x, $y)
{
$this->pixmap->draw_arc($widget->style->black_gc, true, $x -
4, $y - 4, 8, 8, 0, 64 * 360);
$widget->queue_draw_area($x - 4, $y - 4, 8, 8);
}
}//class Scribble extends GtkWindow
$GLOBALS['class'] = 'Scribble';
$GLOBALS['description'] = "Scribble lets you draw paintings with your
mouse";
if (!@$GLOBALS['framework']) {
new Scribble();
Gtk::main();
}
--
Вы получили это сообщение, поскольку подписаны на группу Русское сообщество PHP-GTK.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу php-g...@googlegroups.com.
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу php-gtk-ru+...@googlegroups.com.
О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/php-gtk-ru?hl=ru.
Надо без всяких классов элементарный пример который через цикл
допустим на форме каждую секунду в случайном месте рисует точку. Вот
это будет действительно полезный пример с помощью которого можно
понять КАК работает рисование и через какое место что к чему
обращается.
А свой класс уже понимая как все работает написать это дело получаса.
>>Надо без всяких классов элементарный пример который через цикл
допустим на форме каждую секунду в случайном месте рисует точку.
По времени не выйдет, я так думаю. Вы просили пример вот вам пример.
Мануал по этим ф-ям крайне скуп. Хорошо, что хоть есть описание типов
аргументов в ф-циях.