Hi!
Ich habe das problem, dass ich gerade eine Klasse schreiben will die ein GtkPixmap "vereinfacht" aus einem xpm_d erstellt.
Wenn diese Pixmap einmal eingebunden wird in ein Gtk GUI, dann ist sie nichtmehr "verwertbar", dafür muss ich dann eine funktion "fetch_clone" haben, die eine kopie des eigenen Objektes zurückgibt, wegen der ID darf es aber kein exakter clone sein, da er auf die gleiche Resource verweisen würde. Daraus folgt, dass ich anhand der Daten nochmal das Objekt erstellen will und dann den Handle zurückgeben um so einen Clone zu erhalten, der aber nicht auf die Selben resourcen verweist.
Nur bekomme ich dabei immer diese Fehlermeldung:
Wenn ihr mir sagen könnt, wie ich es schaffen kann, so einen Klon zurückzugeben, oder gar eine Andere idee, das ganze zu Kopieren ohne die Selbe resource in GTK zu haben, sagt bitte bescheit!
Danke, gruss Florian
Ich habe das problem, dass ich gerade eine Klasse schreiben will die ein GtkPixmap "vereinfacht" aus einem xpm_d erstellt.
Wenn diese Pixmap einmal eingebunden wird in ein Gtk GUI, dann ist sie nichtmehr "verwertbar", dafür muss ich dann eine funktion "fetch_clone" haben, die eine kopie des eigenen Objektes zurückgibt, wegen der ID darf es aber kein exakter clone sein, da er auf die gleiche Resource verweisen würde. Daraus folgt, dass ich anhand der Daten nochmal das Objekt erstellen will und dann den Handle zurückgeben um so einen Clone zu erhalten, der aber nicht auf die Selben resourcen verweist.
Nur bekomme ich dabei immer diese Fehlermeldung:
php4 Script Interpreter hat gesagt.:Fatal error: Only variables can be passed by reference in D:\Programming\TeamOrg
a2\gui\gui_pixmap.class on line 46
PHP:
//Ein xpm_d als Beispiel..
$xpm_d = array(
"16 16 6 1", " c None s None",
". c black", "X c red",
"o c yellow", "O c #808080",
"# c white",
" ",
" .. ",
" ..XX. ",
" ..XXXXX. ",
" ..XXXXXXXX. ",
" .ooXXXXXXXXX. ",
" ..ooXXXXXXXXX. ",
" .X.ooXXXXXXXXX. ",
" .XX.ooXXXXXX.. ",
" .XX.ooXXX..#O ",
" .XX.oo..##OO. ",
" .XX..##OO.. ",
" .X.#OO.. ",
" ..O.. ",
" .. ",
" "
);
//Pixmaps erzeugen..
$icon = &new gui_pixmap($xpm_d, $gui);
$icon2 = $icon->fetch_clone(); //Hier wird der fehler erzeugt, der in der Funktion fetsch_clone() seinen uhrsprung hat..
class gui_pixmap extends GtkPixmap
{
var $_class_name = 'gui_pixmap';
var $main_window;
var $xpm_d;
function gui_pixmap($xpm_d, &$main_window)
{
if( !is_object($main_window) )
{
return FALSE;
}
//Transparente farbe definieren..
$transparence = new GdkColor(0, 0, 0);
//Fensterverweis festlegen..
if( isset($main_window->window->window) )
{
$window = $main_window->window->window;
}
elseif( isset($main_window->window) )
{
$window = $main_window->window;
}
else
{
return FALSE;
}
//Überprüfen ob xpm_d gültig ist..
if( !is_array($xpm_d) )
{
return FALSE;
}
//GdkPixmap erzeugen,,
list($pixmap, $mask) = gdk::pixmap_create_from_xpm_d($window, $transparence, $xpm_d);
//Erzeugen und Zurückgeben einer GtkPixmap..
$this->GtkPixmap($pixmap, $mask);
//Daten für clones speichern..
$this->main_window = $main_window;
$this->xpm_d = $xpm_d;
}
function fetch_clone()
{
$pixmap = &new gui_pixmap($this->xpm_d, $this->main_window); //Das ist die vermeindliche fehlerquelle..
return $pixmap;
}
}
Wenn ihr mir sagen könnt, wie ich es schaffen kann, so einen Klon zurückzugeben, oder gar eine Andere idee, das ganze zu Kopieren ohne die Selbe resource in GTK zu haben, sagt bitte bescheit!
Danke, gruss Florian