LMPX.COM |
Home | Linux | Mysql | PHP | XML | ||
|
|
|||
From: Elizabeth Marie Smith Date: Wed Jul 30 19:52:19 2008 Subject: cvs: php-gtk /demos/examples cairo_support.php notebook.php printing_example.php /ext/gtk+ gdk-2.10.overrides gdk-2.12.overrides gdk-2.8.overrides
gtk.defs
auroraeosrose Thu Jul 31 01:52:19 2008 UTC
Added files:
/php-gtk/ext/gtk+ gdk-2.10.overrides
/php-gtk/demos/examples cairo_support.php notebook.php
printing_example.php
Modified files:
/php-gtk/ext/gtk+ gdk-2.12.overrides gdk-2.8.overrides gtk.defs
Log:
Inital cairo support - some of the methods may not work yet, also foreach to for_each in defs to work around reserved words in PHP
http://cvs.php.net/viewvc.cgi/php-gtk/ext/gtk+/gdk-2.12.overrides?r1=1.4&r2=1.5&diff_format=u
Index: php-gtk/ext/gtk+/gdk-2.12.overrides
diff -u php-gtk/ext/gtk+/gdk-2.12.overrides:1.4 php-gtk/ext/gtk+/gdk-2.12.overrides:1.5
--- php-gtk/ext/gtk+/gdk-2.12.overrides:1.4 Sun Jul 13 19:21:18 2008
+++ php-gtk/ext/gtk+/gdk-2.12.overrides Thu Jul 31 01:52:19 2008
@@ -1,5 +1,5 @@
/* vim: set et ft=cpp fdm=marker: */
-%% include gdk-2.8.overrides
+%% include gdk-2.10.overrides
%%
ignore-glob
@@ -7,4 +7,22 @@
%%
ignore-win32
gdk_x11_*
-%% }}}
+%%
+
+%%
+override gtk_print_context_get_cairo_context
+PHP_METHOD
+{
+ zend_class_entry *ce;
+ context_object *cont
+ zval *print = NULL, *statusicon = NULL;
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) {
+ return;
+ }
+ ce = get_CairoContext_ce_ptr();
+ object_init_ex(return_value, ce);
+ cont = (context_object *)zend_objects_get_address(return_value TSRMLS_CC);
+ cont->context = gtk_print_context_get_cairo_context(GTK_PRINT_CONTEXT(PHPG_GOBJECT(this_ptr)));
+ cairo_reference(cont->context);
+}
+
http://cvs.php.net/viewvc.cgi/php-gtk/ext/gtk+/gdk-2.8.overrides?r1=1.1&r2=1.2&diff_format=u
Index: php-gtk/ext/gtk+/gdk-2.8.overrides
diff -u php-gtk/ext/gtk+/gdk-2.8.overrides:1.1 php-gtk/ext/gtk+/gdk-2.8.overrides:1.2
--- php-gtk/ext/gtk+/gdk-2.8.overrides:1.1 Sun Jul 13 19:21:19 2008
+++ php-gtk/ext/gtk+/gdk-2.8.overrides Thu Jul 31 01:52:19 2008
@@ -1,2 +1,125 @@
/* vim: set et ft=cpp fdm=marker: */
-%% include gdk.overrides
\ No newline at end of file
+%% include gdk.overrides
+
+%%
+override gdk_cairo_create
+PHP_METHOD
+{
+ zval *cobj = NULL;
+ zval *rect = NULL;
+ GdkDrawable *drawable;
+ context_object *cont;
+ zend_class_entry *ce;
+
+ if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"")) {
+ return;
+ }
+ ce = get_CairoContext_ce_ptr();
+ object_init_ex(return_value,ce);
+ cont = (context_object *)zend_objects_get_address(return_value TSRMLS_CC);
+ drawable = GDK_DRAWABLE(PHPG_GOBJECT(this_ptr));
+ cont->context = gdk_cairo_create(drawable);
+}
+
+%%
+add-arginfo Gdk cairo_set_source_color
+static
+ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME,0,0,2)
+ ZEND_ARG_OBJ_INFO(0,cobj, CairoContext, 1)
+ ZEND_ARG_OBJ_INFO(0,color, GdkColor, 1)
+ ZEND_END_ARG_INFO();
+
+%%
+override gdk_cairo_set_source_color
+PHP_METHOD
+{
+/* TODO - GDK_COLOR is a boxed type
+ zval *cobj = NULL;
+ zval *color = NULL;
+ GdkColor *col;
+ context_object *cont;
+ if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"OO", &cobj, &color)) {
+ return;
+ }
+ cont = (context_object *)zend_objects_get_address(cobj TSRMLS_CC);
+ col = GDK_COLOR(PHPG_GOBJECT(color));
+ gdk_cairo_set_source_color(cont->context, col); */
+}
+
+%%
+add-arginfo Gdk cairo_set_source_pixbuf
+static
+ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME,0,0,4)
+ ZEND_ARG_OBJ_INFO(0,cobj, CairoContext, 1)
+ ZEND_ARG_OBJ_INFO(0,pbuf, GdkPixbuf, 1)
+ ZEND_ARG_INFO(0, pixbuf_x)
+ ZEND_ARG_INFO(0, pixbuf_y)
+ ZEND_END_ARG_INFO();
+
+%%
+override gdk_cairo_set_source_pixbuf
+PHP_METHOD
+{
+ zval *cobj = NULL;
+ zval *pbuf = NULL;
+ gdouble pixbuf_x = 0;
+ gdouble pixbuf_y = 0;
+ GdkPixbuf *pixbuf;
+ context_object *cont;
+ if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"OOdd", &cobj, &pbuf, &pixbuf_x, &pixbuf_y)) {
+ return;
+ }
+ cont = (context_object *)zend_objects_get_address(cobj TSRMLS_CC);
+ pixbuf = GDK_PIXBUF(PHPG_GOBJECT(pbuf));
+ gdk_cairo_set_source_pixbuf(cont->context, pixbuf, pixbuf_x, pixbuf_y);
+}
+
+%%
+add-arginfo Gdk cairo_region
+static
+ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME,0,0,2)
+ ZEND_ARG_OBJ_INFO(0,cobj, CairoContext, 1)
+ ZEND_ARG_OBJ_INFO(0,reg, GdkRegion, 1)
+ ZEND_END_ARG_INFO();
+
+%%
+override gdk_cairo_region
+PHP_METHOD
+{
+/* TODO - GDK_REGION is a boxed type
+ zval *cobj = NULL;
+ zval *reg = NULL;
+ GdkRegion *region;
+ context_object *cont;
+ if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"OO", &cobj, ®)) {
+ return;
+ }
+ cont = (context_object *)zend_objects_get_address(cobj TSRMLS_CC);
+ region = GDK_REGION(PHPG_GOBJECT(reg));
+ gdk_cairo_region(cont->context, region); */
+}
+
+%%
+add-arginfo Gdk cairo_rectangle
+static
+ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME,0,0,2)
+ ZEND_ARG_OBJ_INFO(0,cobj, CairoContext, 1)
+ ZEND_ARG_OBJ_INFO(0,reg, GdkRectangle, 1)
+ZEND_END_ARG_INFO();
+
+%%
+override gdk_cairo_rectangle
+PHP_METHOD
+{
+/* TODO - GDK_RECTANGLE is a boxed type
+ zval *cobj = NULL;
+ zval *rect = NULL;
+ GdkRectangle *rectangle;
+ context_object *cont;
+ if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"OO", &cobj, &rect)) {
+ return;
+ }
+ cont = (context_object *)zend_objects_get_address(cobj TSRMLS_CC);
+ rectangle = GDK_RECTANGLE(PHPG_GOBJECT(rect));
+ gdk_cairo_rectangle(cont->context, rectangle); */
+}
\ No newline at end of file
http://cvs.php.net/viewvc.cgi/php-gtk/ext/gtk+/gtk.defs?r1=1.59&r2=1.60&diff_format=u
Index: php-gtk/ext/gtk+/gtk.defs
diff -u php-gtk/ext/gtk+/gtk.defs:1.59 php-gtk/ext/gtk+/gtk.defs:1.60
--- php-gtk/ext/gtk+/gtk.defs:1.59 Sat Jul 12 23:53:46 2008
+++ php-gtk/ext/gtk+/gtk.defs Thu Jul 31 01:52:19 2008
@@ -455,7 +455,7 @@
)
)
-(define-method foreach
+(define-method for_each
(c-name "gtk_accel_map_foreach")
(return-type "none")
(of-object "GtkAccelMap")
@@ -4061,7 +4061,7 @@
)
)
-(define-method foreach
+(define-method for_each
(of-object "GtkContainer")
(c-name "gtk_container_foreach")
(return-type "none")
@@ -16218,7 +16218,7 @@
)
)
-(define-method foreach
+(define-method for_each
(of-object "GtkTextTagTable")
(c-name "gtk_text_tag_table_foreach")
(return-type "none")
@@ -17900,7 +17900,7 @@
)
)
-(define-method foreach
+(define-method for_each
(of-object "GtkTreeModel")
(c-name "gtk_tree_model_foreach")
(return-type "none")
http://cvs.php.net/viewvc.cgi/php-gtk/ext/gtk+/gdk-2.10.overrides?view=markup&rev=1.1
Index: php-gtk/ext/gtk+/gdk-2.10.overrides
+++ php-gtk/ext/gtk+/gdk-2.10.overrides
%% include gdk-2.8.overrides
%%
add-arginfo GdkScreen set_font_options
static
ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME,0,0,1)
ZEND_ARG_OBJ_INFO(0,obj, CairoFontOptions, 1)
ZEND_END_ARG_INFO();
%%
override gdk_screen_set_font_options
PHP_METHOD
{
zval *obj=NULL;
fontoptions_object *fobj;
if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"O", &obj)) {
return;
}
fobj = (fontoptions_object *)zend_object_store_get_object(obj TSRMLS_CC);
gdk_screen_set_font_options(GDK_SCREEN(PHPG_GOBJECT(this_ptr)), fobj->fontoptions);
}
%%
override gdk_screen_get_font_options
PHP_METHOD
{
const cairo_font_options_t *fo;
zend_class_entry *ce;
fontoptions_object *fobj;
if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"")) {
return;
}
fo = gdk_screen_get_font_options(GDK_SCREEN(PHPG_GOBJECT(this_ptr)));
ce = get_CairoFontOptions_ce_ptr();
object_init_ex(return_value, ce);
fobj = (fontoptions_object *)zend_object_store_get_object(return_value TSRMLS_CC);
/* I don't want to have to link to cairo.dll as well, this should be fixed!
fobj->fontoptions = cairo_font_options_copy(fo);*/
}
%%
add-arginfo Gdk cairo_set_source_pixmap
static
ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME,0,0,4)
ZEND_ARG_OBJ_INFO(0,cobj, CairoContext, 1)
ZEND_ARG_OBJ_INFO(0,pmap, GdkPixmap, 1)
ZEND_ARG_INFO(0, pixmap_x)
ZEND_ARG_INFO(0, pixmap_y)
ZEND_END_ARG_INFO();
%%
override gdk_cairo_set_source_pixmap
PHP_METHOD
{
zval *cobj = NULL;
zval *pmap = NULL;
GdkPixmap *pixmap;
gdouble pixmap_x = 0;
gdouble pixmap_y = 0;
context_object *cont;
if(!php_gtk_parse_args(ZEND_NUM_ARGS(),"OOdd", &cobj, &pmap, &pixmap_x, &pixmap_y)) {
return;
}
cont = (context_object *)zend_objects_get_address(cobj TSRMLS_CC);
pixmap = GDK_PIXMAP(PHPG_GOBJECT(pmap));
gdk_cairo_set_source_pixmap(cont->context, pixmap, pixmap_x, pixmap_y);
}
http://cvs.php.net/viewvc.cgi/php-gtk/demos/examples/cairo_support.php?view=markup&rev=1.1
Index: php-gtk/demos/examples/cairo_support.php
+++ php-gtk/demos/examples/cairo_support.php
<?php
class Clock extends GtkDrawingArea {
protected $context;
public function __construct() {
parent::__construct();
$this->connect_simple('expose-event', array($this, 'expose'));
}
public function expose() {
$this->realize();
$this->context = $this->window->cairo_create();
var_dump($this->context);
//$this->context->rectangle(1,1,50,50);
//$this->context->stroke();
}
}
$window = new GtkWindow();
$clock = new Clock();
$window->add($clock);
$window->connect_simple('destroy', array('Gtk', 'main_quit'));
$window->show_all();
Gtk::main();
?>
http://cvs.php.net/viewvc.cgi/php-gtk/demos/examples/notebook.php?view=markup&rev=1.1
Index: php-gtk/demos/examples/notebook.php
+++ php-gtk/demos/examples/notebook.php
<?php
/* Create base window */
$window = new GtkWindow();
$window->set_title('Notebooks and Pages');
$window->connect_simple('destroy', array('gtk', 'main_quit'));
$window->add($vbox = new GtkHBox());
$vbox->add($notebook = new GtkNoteBook());
$notebook->append_page($label = new GtkLabel('This is the first page'));
$notebook->set_tab_detachable($label, true);
$notebook->append_page($label = new GtkLabel('This is the second page'));
$notebook->set_tab_detachable($label, true);
$notebook->append_page($label = new GtkLabel('This is the third page'));
$notebook->set_tab_detachable($label, true);
$notebook->set_group('Mygroup');
var_dump($notebook->get_group());
$vbox->add($notebook = new GtkNoteBook());
$notebook->append_page($label = new GtkLabel('This is the first page'));
$notebook->set_tab_detachable($label, true);
$notebook->append_page($label = new GtkLabel('This is the second page'));
$notebook->set_tab_detachable($label, true);
$notebook->append_page($label = new GtkLabel('This is the third page'));
$notebook->set_tab_detachable($label, true);
$notebook->set_group('Mygroup');
var_dump($notebook->get_group());
$window->show_all();
Gtk::main();
?>
http://cvs.php.net/viewvc.cgi/php-gtk/demos/examples/printing_example.php?view=markup&rev=1.1
Index: php-gtk/demos/examples/printing_example.php
+++ php-gtk/demos/examples/printing_example.php
<?php
function request_page_setup($operation, $context, $page_nr, $setup)
{
if($page_nr == 1)
{
$a5 = new GtkPaperSize("iso_a5");
$setup->set_orientation(GTK_PAGE_ORIENTATION_LANDSCAPE);
$setup->set_paper_size($a5);
}
}
function draw_page($operation, $context, $page_nr)
{
$con = $context->get_cairo_context();
$con->setSourceRgb(1,0,0);
$con->rectangle(0,0,20,20);
$con->stroke();
}
$print = new GtkPrintOperation();
$print->set_n_pages(2);
$print->set_unit(GTK_UNIT_MM);
$print->set_export_filename(dirname(__FILE__) . "/test.pdf");
$print->connect("draw_page","draw_page", NULL);
$print->connect("request_page_setup", "request_page_setup", NULL);
$res = $print->run(GTK_PRINT_OPERATION_ACTION_EXPORT, NULL);
?>
| Navigate in group php.gtk.cvs at sever news.php.net | |
| Previous | Next |
| © No Copyright You are free to use Anything |
Site Maintained by PHP Developer
Powered By PHP Consultants |