Проблема заключается в том, что защищенный метод доступен только из одного класса или класса. Что вы можете сделать, так это расширить свой класс Child от родителя, например:
class Child extends Parent
{
public function __constructor ()
{
parent::__constructor();
}
public function __destroy()
{
$this->callme(); // Should work!
}
}
Или просто изменить метод на публичный.
И, btw, это код какого-то реального кода, который вы будете использовать? Этот конструктор, получающий родительский объект, кажется настолько неправильным. Что вы пытаетесь выполнить?
Можно создать и установить невидимую тему курсора. Этот прием используется maemo, потому что довольно бессмысленно иметь курсор на устройстве с сенсорным экраном.
К сожалению, способность изменить глобальную тему курсора во времени выполнения не универсальна через приложения X11 и инструментарии. Можно изменить ресурс сервера Xcursor.theme
, и никто не заметит (обычно, он только запрашивается при запуске); можно сообщить xsettings, который только, кажется, влияет на Gtk + программы; KDE использует своего рода коммуникацию через свойства на корневом окне; и т.д.
, По крайней мере, изменение курсора для Вашего собственного приложения так же легко как XDefineCursor, и если Вы делаете это на корневом окне, приблизительно , приложения могли бы следовать вперед.
Я закончил тем, что использовал XDefineCursor как упомянутый ephemient. Приложение управления изменило корневой курсор окна по умолчанию и другие приложения (которые находятся под моим контролем), наследовал его.
специфические особенности Кода похожи:
// Hide the cursor
if (NULL==(display=XOpenDisplay(NULL)))
{
printf("Unable to open NULL display\n");
exit(1);
}
window = DefaultRootWindow(display);
Cursor invisibleCursor;
Pixmap bitmapNoData;
XColor black;
static char noData[] = { 0,0,0,0,0,0,0,0 };
black.red = black.green = black.blue = 0;
bitmapNoData = XCreateBitmapFromData(display, window, noData, 8, 8);
invisibleCursor = XCreatePixmapCursor(display, bitmapNoData, bitmapNoData,
&black, &black, 0, 0);
XDefineCursor(display,window, invisibleCursor);
XFreeCursor(display, invisibleCursor);
XFreePixmap(display, bitmapNoData);
для сокрытия курсора и затем после того, как я сделан
// Restore the X left facing cursor
Cursor cursor;
cursor=XCreateFontCursor(display,XC_left_ptr);
XDefineCursor(display, window, cursor);
XFreeCursor(display, cursor);
Для восстановления X предназначенный для левой руки курсор (Так как это - корневое окно и я не хочу, чтобы он остался невидимым. Я не уверен, но я мог бы также быть в состоянии использовать
XUndefineCursor(display, window);
Вот описание как unclutter
утилита делает это.
Непомеха является программой, которая работает постоянно в фоновом режиме сессии X11. Это проверяет указатель X11 (курсор) положение каждые несколько секунд, и когда это находит, что не переместилось (и никакие кнопки не нажимаются на мыши, и курсор не находится в корневом окне), это создает маленькое подокно как ребенка окна, в котором находится курсор. Новое окно устанавливает курсор размера 1x1, но маска всего 0, т.е. невидимый курсор. Это позволяет Вам видеть весь текст в xterm или xedit, например. Толпа человеческих факторов согласилась бы, что она должна сделать вещи менее недовольными.
После того, как созданный, программа ожидает указателя для отъезда окна и затем уничтожает его, восстанавливая исходную ситуацию. События кнопки передаются прозрачно до родительского окна. Они будут обычно заставлять курсор вновь появляться, потому что активный захват будет сделан программой, в то время как кнопка снижается, таким образом, указатель, по-видимому, оставит окно, даже при том, что его x y положение не изменяется.