<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >What to know before writing Gaby plugins</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="Gaby's documentation" HREF="index.html"><LINK REL="UP" TITLE="Introduction" HREF="c492.html"><LINK REL="PREVIOUS" TITLE="Introduction" HREF="c492.html"><LINK REL="NEXT" TITLE="Functions and structures" HREF="c517.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Gaby's documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="c492.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 7. Introduction</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="c517.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="AEN502" >7.2. What to know before writing Gaby plugins</A ></H1 ><P ></P ><UL ><LI ><P >C : Gaby is written in C and this is the only language I daily use. It is certainly be possible to write plugins in C++ and it is sure you could write a plugin which would load and execute Python or Perl code (but this is another story). A side note about C : I prefer Linux Coding Standards to GNU ones; therefore : <B CLASS="COMMAND" >indent -kr -i8 *.c</B ></P ></LI ><LI ><P >GLIB : things like GString's and GList's are often used as well as some other convenience functions but you don't have to worry about GHashTable, GTree, ...</P ></LI ><LI ><P >GTK+ : I'd say 'tutorial + testgtk' but this could be less, or more.</P ></LI ><LI ><P >Gnome : may be useful in some cases.</P ></LI ></UL ><DIV CLASS="IMPORTANT" ><P ></P ><TABLE CLASS="IMPORTANT" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/important.gif" HSPACE="5" ALT="Important"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P >Memory allocations (malloc, strdup, ...) are done using the GLIB library (g_malloc, g_strdup, ...). This allows to call <CODE CLASS="FUNCTION" >g_mem_profile</CODE > to know about memory status.</P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="c492.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="c517.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Introduction</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="c492.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Functions and structures</TD ></TR ></TABLE ></DIV ></BODY ></HTML >