Modules
ADT Database GTK2 GUI IP PiJAX Public Sql Stdio Subversion System Tools Xosd lua v4l2 wx
Recent Changes
Public.Parser.XML2 1.50
Public.ZeroMQ 1.1
Public.Template.Mustache 1.0
Public.Protocols.XMPP 1.4
Sql.Provider.jdbc 1.0
Popular Downloads
Public.Parser.JSON2 1.0
Public.Parser.JSON 0.2
GTK2 2.23
Public.Web.FCGI 1.8
Public.Parser.XML2 1.48
|
Module Information
GUI.GTK2
Viewing contents of GUI_GTK2-0.1/object.cmod
#include "global.h"
#include "svalue.h"
#include "interpret.h"
#include "constants.h"
#include
#define THIS_IS_PGTK2_OBJECT
#include "gtk2.h"
#undef THIS_IS_PGTK2_OBJECT
/* This must be included last! */
#include "module.h"
/* Global variables
*/
/*! @module GUI */
/*! @module GTK2 */
/*! @class Object
*!
*! The base class of the GTK+ type hierarchy.
*!
*! @b{Signal Prototypes@}
*!
*! @i{"destroy"@} void user_function (Object object,mixed user_data)
*/
PIKECLASS Object
{
/* The C level GTK object */
CVAR void* data;
/*! @decl int signal_connect(string signal, function callback,mixed|void callback_arg)
*!
*! FIXME: add doc
*/
PIKEFUN int signal_connect(string signal,function callback,mixed|void callback_arg)
{
gchar* gsignal;
push_string(signal);
f_string_to_utf8(1);
gsignal=g_strdup(Pike_sp[-1].u.string->str);
pop_stack();
struct pgtk2_signal_data* sigdata;
sigdata=g_malloc(sizeof(struct pgtk2_signal_data));
sigdata->cb=*callback;
if (args>2)
{
sigdata->args=*callback_arg;
sigdata->argc=1;
}
else
{
sigdata->argc=0;
}
{
guint sig_id;
GSignalQuery sig_query;
GClosure* closure=g_cclosure_new((void*)pgtk2_call_signal,sigdata,pgtk2_destroy_signal);
g_closure_set_meta_marshal(closure,sigdata,pgtk2_call_signal);
sig_id = g_signal_lookup(gsignal,(GTK_OBJECT_TYPE(GTK2_LOW)));
g_signal_query(sig_id,&sig_query);
if (sig_id==0 || sig_query.signal_id==0)
{
RETURN 0;
}
g_signal_connect_closure(GTK2_LOW,gsignal,closure,0);
}
RETURN 0;
}
INIT
{
gtk2_check_init();
THIS_OBJECT->data=NULL;
}
EXIT
{
/* gtk_object_destroy(GTK_OBJECT(THIS_OBJECT->data=NULL));
THIS_OBJECT->data=NULL; */
}
}
/*! @endclass */
/*! @endmodule */
/*! @endmodule */
void pike_init_gtk2_object(void)
{
INIT
}
void pike_exit_gtk2_object(void)
{
EXIT
}
|
|
|